您好,登錄后才能下訂單哦!
一文帶你了解Java中數值與集合的區別?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
數組array和集合的區別:
(1) 數值是大小固定的,同一數組只能存放一樣的數據。
(2) java集合可以存放不固定的一組數據
(3) 若程序事不知道究竟需要多少對象,需要在空間不足時自動擴增容量,則需要使用容器類庫,array不適用
數組轉換為集合:
Arrays.asList(數組)
示例:
int[] arr = {1,3,4,6,6}; Arrays.asList(arr); for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); }
集合轉換為數組:
集合.toArray();
示例:
List list = new ArrayList(); list.add("a"); list.add("b"); list.toArray(); System.out.println(list.toString());
一、集合的體系結構:
List、Set、Map是這個集合體系中最主要的三個接口。 List和Set繼承自Collection接口。 Map也屬于集合系統,但和Collection接口不同。
Set不允許元素重復。HashSet和TreeSet是兩個主要的實現類。Set 只能通過游標來取值,并且值是不能重復的。
List有序且允許元素重復。ArrayList、LinkedList和Vector是三個主要的實現類。 ArrayList 是線程不安全的, Vector 是線程安全的,這兩個類底層都是由數組實現的 LinkedList 是線程不安全的,底層是由鏈表實現的
Map 是鍵值對集合。其中key列就是一個集合,key不能重復,但是value可以重復。 HashMap、TreeMap和Hashtable是Map的三個主要的實現類。 HashTable 是線程安全的,不能存儲 null 值 HashMap 不是線程安全的,可以存儲 null 值
二、List和ArrayList的區別
1.List是接口,List特性就是有序,會確保以一定的順序保存元素。
ArrayList是它的實現類,是一個用數組實現的List.
Map是接口,Map特性就是根據一個對象查找對象.
HashMap是它的實現類,HashMap用hash表實現的Map,就是利用對象的hashcode(hashcode()是Object的方法)進行快速散列查找。(關于散列查找,可以參看<<數據結構>>)
2.一般情況下,如果沒有必要,推薦代碼只同List,Map接口打交道。
比如:List list = new ArrayList();
這樣做的原因是list就相當于是一個泛型的實現,如果想改變list的類型,只需要:
List list = new LinkedList();//LinkedList也是List的實現類,也是ArrayList的兄弟類
這樣,就不需要修改其它代碼,這就是接口編程的優雅之處.
另外的例子就是,在類的方法中,如下聲明:
private void doMyAction(List list){}
這樣這個方法能處理所有實現了List接口的類,一定程度上實現了泛型函數.
3.如果開發的時候覺得ArrayList,HashMap的性能不能滿足你的需要,可以通過實現List,Map(或者Collection)來定制你的自定義類.
看完上述內容,你們掌握一文帶你了解Java中數值與集合的區別的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。