導航:首頁 > 編程語言 > java數組list區別

java數組list區別

發布時間:2021-02-27 14:22:17

java語言中集合與數組的區別是什麼

對JAVA的集合的理解是相對於數組,區別:
1)數組是大小固定的,並且同一個內數組只能存放類型一樣容的數據(基本類型/引用類型)
2)JAVA集合可以存儲和操作數目不固定的一組數據。
3)JAVA集合只能存放引用類型的的數據,不能存放基本數據類型;數組可以。
(注意基本類型int,double等等,但是Integer,Double等是類類型了)
附加:
所有的JAVA集合都位於 java.util包中!
JAVA集合主要分為三種類型:
Set(集)
List(列表)
Map(映射)

㈡ 各位Java中數組(Array)和列表(ArrayList)有什麼區別

Array可以包含基本類型和對象類型,ArrayList只能包含對象類型。
Array大小是固定的,ArrayList的大小是動態變化的。
ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
對於基本類型數據,集合使用自動裝箱來減少編碼工作量。但是,當處理固定大小的基本數據類型的時候,這種方式相對比較慢,這時使用Array就會比較有效率。可以在教程網站秒秒學上看看,上面Java課程講解得挺好的。

㈢ java中arraylist和list的區別

List是一個介面,而是一個類。

ListArray繼承並實現了List。
所以List不能被構造,但可以向上面那樣為List創建一個引用,而ListArray就可以被構造。

1
2

List list; //正確 list=null;
List list=new List(); // 是錯誤的用法

List list = new ArrayList();這句創建了一個ArrayList的對象後把上溯到了List。此時它是一個List對象了,有些ArrayList有但是List沒有的屬性和方法,它就不能再用了。
而ArrayList list=new ArrayList();創建一對象則保留了ArrayList的所有屬性。
這是一個例子:

1
2
3
4
5
6
7
8
9

import java.util.*;
public class TestList{
public static void main(String[] args){
List list = new ArrayList();
ArrayList arrayList = new ArrayList();
list.trimToSize(); //錯誤,沒有該方法。
arrayList.trimToSize(); //ArrayList里有該方法。
}
}

編譯一下就知道結果了。
如果這個樣子:
List a=new ArrayList();
則a擁有List與ArrayList的所有屬性和方法,不會減少
如果List與ArrayList中有相同的屬性(如int i),有相同的方法(如void f()),
則a.i是調用了List中的i
a.f()是調用了ArrayList中的f();
---------------------------------------------------------------
問題的關鍵:
為什麼要用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢?
問題就在於List有多個實現類,現在你用的是ArrayList,也許哪一天你需要換成其它的實現類,如 LinkedList或者Vector等等,這時你只要改變這一行就行了:
List list = new LinkedList(); 其它使用了list地方的代碼根本不需要改動。
假設你開始用 ArrayList alist = new ArrayList(), 這下你有的改了,特別是如果你使用了 ArrayList特有的方法和屬性。

地區用 List arr = new ArrayList();定義;行業用 ArrayListarr = new ArrayList();定義;則說明,行業里用到了ArrayList的特殊的方法.
另外的例子就是,在類的方法中,如下聲明:
private void doMyAction(List list){}
這樣這個方法能處理所有實現了List介面的類,一定程度上實現了泛型函數.

如果開發的時候覺得ArrayList,HashMap的性能不能滿足你的需要,可以通過實現List,Map(或者Collection)來定製你的自定義類.

㈣ Java中List和ArrayList的區別

java中List和ArrayList的區別如下:來
List是介面,源List特性就是有序,會確保以一定的順序保存元素.
ArrayList是它的實現類,是一個用數組實現的List。
使用方法:
比如:List list = new ArrayList();
這樣做的原因是list就相當於是一個泛型的實現,如果想改變list的類型,只需要:
List list = new LinkedList();//LinkedList也是List的實現類,也是ArrayList的兄弟類

㈤ 區別:java,list,arraylist

List:是一個有序的集合,可以包含重復的元素。提供了按索引訪問的方式。它繼承 Collection。
List有兩個重要的實現類:ArrayList 和 LinkedList
ArrayList:我們可以將其看作是能夠自動增長容量的數組。
利用ArrayList的toArray()返回一個數組。
Arrays.asList()返回一個列表。
1.ArrayList底層採用數組實現,當使用不帶參數的構造方法生成ArrayList對象時,實際上會在底層生成一個長度為10的Object類型數組
2.如果增加的元素個數超過了10個,那麼ArrayList底層會新生成一個數組,長度為原數組的1.5倍+1,然後將原數組的內容復制到新數組當中,並且後續增加的內容都會放到新數組當中。當新數組無法容納增加的元素時,重復該過程。
3.對於ArrayList元素的刪除操作,需要將被刪除元素的後續元素向前移動,代價比較高。
4.集合當中只能放置對象的引用,無法放置原生數據類型,我們需要使用原生數據類型的包裝類才能加入到集合當中。
5.集合當中放置的都是Object類型,因此取出來的也是Object類型,那麼必須要使用強制類型轉換將其轉換為真正的類型(放置進去的類型)

㈥ 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里的數組和集合的區別是什麼

數組是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 arraylist和數組的區別

List: 有順序的,元素可以重復
遍歷:for 迭代
排序:Comparable Comparator Collections.sort()
ArrayList:底層用數組實現的List
特點:查詢效率高,增刪效回率低 輕量級 線程不答安全
遍歷:
ArrayList<String> al=new ArrayList();
al.add("winsun"); al.add("weixin"); al.add("mybole");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}//for遍歷
Iterator it=al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}//迭代器遍歷
LinkedList:底層用雙向循環鏈表 實現的List
特點:查詢效率低,增刪效率高
Vector: 底層用數組實現List介面的另一個類
特點:重量級,占據更多的系統開銷 線程安全

㈨ java中隊列,數組和list集合的區別

具體的來講
數組保存的是類型,幾何保存的是對象
如我的2個封裝類Person,Animal:
用數組保存時應該這樣:
Person[]p=newPerson[100];
Animal[]a=newAnimal[100];
我們能明確的知道我們保存的是是什麼,不同的類要分開保存,並且在保存前就要知道我要保存的數量
用集合類來保存的話是這樣:
Personperson=newPerson();
Animalanimal=newAnimal();
ArrayListlist=newArrayList();。//我這里用的是集合類ArrayList,你也可以用其他的
list.add(person);
list.add(animal);
我可以把兩個類都保存在一個集合類list里,也就是說我保存的是個Object
取的時候也一樣
數組直接取接可以了
集合類要進行轉化,如(接著上面的例子):
Personper=p[0];
Animalani=a[0];
Personpers=(Person)list.get(0);//要強制轉化
Animalanim=(Animal)list.get(1);

這是在博客上看到程序猿網友分享的,希望可以給你帶來幫助

㈩ java list和arraylist的區別

上課沒認真聽吧!!ArrayList 是List的實現類。
List:是一個有序的集合,可以包含重復的元素。提供了按索引訪問的方式。它繼承 Collection。
List有兩個重要的實現類:ArrayList 和 LinkedList
ArrayList:我們可以將其看作是能夠自動增長容量的數組。
利用ArrayList的toArray()返回一個數組。
Arrays.asList()返回一個列表。
1.ArrayList底層採用數組實現,當使用不帶參數的構造方法生成ArrayList對象時,實際上會在底層生成一個長度為10的Object類型數組
2.如果增加的元素個數超過了10個,那麼ArrayList底層會新生成一個數組,長度為原數組的1.5倍+1,然後將原數組的內容復制到新數組當中,並且後續增加的內容都會放到新數組當中。當新數組無法容納增加的元素時,重復該過程。
3.對於ArrayList元素的刪除操作,需要將被刪除元素的後續元素向前移動,代價比較高。
4.集合當中只能放置對象的引用,無法放置原生數據類型,我們需要使用原生數據類型的包裝類才能加入到集合當中。
5.集合當中放置的都是Object類型,因此取出來的也是Object類型,那麼必須要使用強制類型轉換將其轉換為真正的類型(放置進去的類型)。

閱讀全文

與java數組list區別相關的資料

熱點內容
韓國在車震的劇情 瀏覽:929
流量點擊工具 瀏覽:892
主角叫葉楓的斗羅小說 瀏覽:227
群主如何刪除群文件 瀏覽:766
蘋果ipad能連鍵盤嗎 瀏覽:492
jsreference 瀏覽:637
蘋果用什麼數據線 瀏覽:748
越語電影 瀏覽:55
電影結束了?英文翻譯 瀏覽:476
Excel數據文件夾 瀏覽:442
java交行面試題 瀏覽:626
露點電影合集 瀏覽:697
cad文件可以用p3d打開嗎 瀏覽:394
文件名不能用的特殊符號 瀏覽:740
那能找到在線小電影 瀏覽:476
穿越朱元璋的兒子小說 瀏覽:35
the beast 1975 瀏覽:491
文件夾里可以有多少子文件夾 瀏覽:384
泰國女的販毒電影 瀏覽:955
javatext包 瀏覽:542

友情鏈接