java數組與集合
『壹』 java中數組和集合有什麼關系和區別
數組是JAVA語言內置的數據類型,它是一個線性的序列,所以它可以快速的訪問其他的元素。但是速度是要有代價的,當你創建了一個數組之後,它的容量就固定了,而且在其生命周期里是不能改變的。還有一點,JAVA裡面的數組是會做邊界檢查的,所以當你越界訪問時,會拋出RuntimeException,所以不用擔心在C或C++因為不做邊界檢查而出現的問題了,當然邊界檢查是以犧牲效率為代價的。數組與其它容器類的區別體現在三個方面:效率、類型識別和可以持有primitives。
JAVA裡面提供的其他容器還包括List,Set和Map。他們處理對象的時候就好像這些這些對象都沒有自己的類型一樣,容器將它所含的元素都看成是JAVA中所有類的根類Object類型的,這樣我們只需創建一種容器,就能把所有的類型的對象全部放進去。但是當取出的時候,那就需要我們自己進行類型轉換了,不過在JAVA Tiger版裡面新引入了「泛型」的概念,結合容器類一起使用就可以解決類型轉換的問題,關於「泛型」這就不詳細講解了。從上面的角度來看,這種做法很不錯,但是就是苦了primitives,如果是常量的話,可以把primitive轉換成wrapper類然後放進容器裡面,如果是變數的話,那就只能放在你自己的類里了。與其他容器類相比,數組會在編譯的時候作類型檢查,從而防止你插入錯誤類型的對象,或者在提取對象的時候把對象的類型給搞錯了,JAVA在編譯和運行的時候都能阻止你將一個不恰當的消息傳給對象。至於效率,數組無疑是要高於其他容器類的,因為有些容器類的實現就是基於數組的,比如ArrayList。不論從類型檢查還是效率的角度來考慮,我們首選數組來作為容器都是沒錯的,但是數組的缺點就是功能太弱了,所以才會有容器類的出現。
要多說幾句的就是,java.util包裡面有一個Arrays類,它包括了一組可以用於數組的static的工具方法,其中最基本的是四個方法:用來比較兩個數組是否相等的equals();用來填充數組的fill();用來對數組進行排序的sort();以及用於在一個已經排序的數組中查找元素的binarySearch()。所有這些方法都對primitives和Object進行了重載。此外還有一個asList()方法,它接受一個數組,然後把它轉成一個List容器。JAVA標准類庫還提供了一個System.array()的靜態方法,它能以較快的速度拷貝數組,對primitive和Object都進行了重載,但是注意當對Object數組進行拷貝時,進行的是淺拷貝(shallow )。
『貳』 Java集合和數組的區別介紹
集合的對象位置是由對象hash值決定的。所以在集合中查找是否有某個對象效率很高。數組以下標順序決定位置。
數組是有序的,所存對象可以重復。集合無序的,對象相同的最多隻有一個。
所以處理有序的的事務用數組(列表),無序的且有較多合並存取查的事務用集合。
『叄』 java集合和數組的區別,舉例子
int[] arr={0,2,3,4,5,6,7};//大小固定,只能存儲int類型的值;
List list = new ArrayList();
list.add("a");
list.add(2);//大小不固定,可以存儲任意類型;
總結:
數組特點:大小固定,只能存儲相同數據類型的數據;
集合特點:大小可動態擴展,可以存儲各種類型的數據;
如有幫助請採納(不懂請提問),可以看我主頁,歡迎來交流學習;
『肆』 java 中數組和集合的區別
1、數組特點高效、保存基本類型,集合帶array的底層由數組實現,還有一部分由鏈表或者樹 2、數組大小固定(巨大缺點,內存中一定連續),集合各種實現吧! 3、數組只能放一種類型,集合不考慮泛型可以存很多類型。
『伍』 Java中數組和集合的區別
對JAVA的集合的理解是相對於數組,區別:
1)數組是大小固定的,並且同一個數組只能存放類型一樣的數據(基本類型/引用類型)
2)JAVA集合可以存儲和操作數目不固定的一組數據。
3)JAVA集合只能存放引用類型的的數據,不能存放基本數據類型;數組可以。
(注意基本類型int,double等等,但是Integer,Double等是類類型了)
附加:
所有的JAVA集合都位於 java.util包中!
JAVA集合主要分為三種類型:
Set(集)
List(列表)
Map(映射)
『陸』 Java 中集合和數組 的區別
集合其實是包含了數組,集合可以是list,map,array等。
而數組 屬於集合的一種,數組一般是同類的一個組合,如int[],String[],Object[]等。
『柒』 Java中的數組和集合有什麼不同
數組:是不可變長度的容器
集合:是可變長度的容器