很多初學者或者已經作業的人可能都會對陣列和集合有所混淆,比如輸出格式舉個例子
陣列輸出格式:[1,2,3]
map輸出格式 map={a=1,b=2,c=3}
list輸出格式list=[1,2,3,4]
以下有幾個問題
1. list和map都是java容器中的集合,為什么兩者輸出格式不同,為何list使用的是方括號[],而不是代表集合的{}
2. 陣列輸出的是[],list也是,它們倆是否有某種關系
3. 陣列輸出是[],為何定義時卻是
int[] i=new int[]{0,1,2,3},賦值為何是使用集合。和陣列的另一種定義int[] i=new int[6]有著本質不同,謝謝。
uj5u.com熱心網友回復:
1 沒有為什么,這是兩種不同的資料結構,所以toString方法的實作不同(結果不同)。就好比Object和Calendar都是物件,列印結果也不同,你能問為什么嗎?toString方法沒有規定必須怎么實作,想怎么實作就怎么實作。2 陣列和list有一定的相似性,如都可以通過下標訪問資料等等(只不過前者是事先分配記憶體大小,后者是動態分配記憶體大小)。所以toString方法也相似。其實list的底層實作也是用陣列,具體可以自己看原始碼。
3 {}不是集合賦值,而是在宣告陣列的同時給陣列元素賦值,這種形式只有在陣列宣告的同時使用,宣告后不能對陣列整體賦值,只能單獨對陣列元素賦值。所以和new int[6]的本質沒什么不同,只是前者把陣列元素的初始值也設定了,而new int[6]的每個元素的初始值是默認值0。
uj5u.com熱心網友回復:
感謝講解,因為在數學中,集合一般都是用大括號{}來存盤資料元素,[]只是用來描述資料的區間,因為一般情況我們只在乎,集合的元素,而不在乎資料的存盤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/97790.html
標籤:Java相關
上一篇:java,net
下一篇:【題解】洛谷 P1083 借教室
