3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
Java中的數(shù)組和集合有很多區(qū)別,有些是:
根據(jù)我們的要求,集合在本質(zhì)上是可增長(zhǎng)的。我們可以增加或減少大小。雖然數(shù)組的大小是固定的,但一旦我們創(chuàng)建了一個(gè)數(shù)組,我們就不能根據(jù)我們的要求增加或減少。
關(guān)于內(nèi)存:更推薦集合,而在性能方面:更建議使用數(shù)組。
數(shù)組只能保存同構(gòu)元素,但集合可以同時(shí)保存同構(gòu)和異構(gòu)元素。
數(shù)組沒有現(xiàn)成的方法,但集合具有現(xiàn)成的數(shù)據(jù)結(jié)構(gòu)和方法。
數(shù)組可以同時(shí)保存基元和包裝器對(duì)象,但集合只能包含對(duì)象。
以下是java中的一些集合:
import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
public class CollectionExamples {
public static void main(String[] args) {
List LinkedList = new LinkedList();
LinkedList.add("Linked List Position 1");
LinkedList.add("Linked List Position 2");
LinkedList.add("Linked List Position 3");
LinkedList.add("Linked List Position 4");
displayAll(LinkedList);
List arrayList = new ArrayList();
arrayList.add("Array List Position 1");
arrayList.add("Array List Position 2");
arrayList.add("Array List Position 3");
arrayList.add("Array List Position 4");
displayAll(arrayList);
Set hashSet = new HashSet();
hashSet.add("Hashset Position 1");
hashSet.add("Hashset Position 2");
hashSet.add("Hashset Position 3");
hashSet.add("Hashset Position 4");
displayAll(hashSet);
SortedSet treeSet = new TreeSet();
treeSet.add("TreeSet Position 1");
treeSet.add("TreeSet Position 2");
treeSet.add("TreeSet Position 3");
treeSet.add("TreeSet Position 4");
displayAll(treeSet);
LinkedHashSet linkedHashSet = new LinkedHashSet();
linkedHashSet.add("linkedHashSet Position 1");
linkedHashSet.add("linkedHashSet Position 2");
linkedHashSet.add("linkedHashSet Position 3");
linkedHashSet.add("linkedHashSet Position 4");
displayAll(linkedHashSet);
Map hashMap = new HashMap();
hashMap.put("hashMapKey1", "hashMapValue1");
hashMap.put("hashMapKey2", "hashMapValue2");
hashMap.put("hashMapKey3", "hashMapValue3");
hashMap.put("hashMapKey4", "hashMapValue4");
displayAll(hashMap.keySet());
displayAll(hashMap.values());
}
static void displayAll(Collection col) {
Iterator itr = col.iterator();
while (itr.hasNext()) {
String str = (String) itr.next();
System.out.println(str);
}
System.out.println();
}
}

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
數(shù)組是固定大小的數(shù)據(jù)類型,JVM 支持這些數(shù)據(jù)類型,并提供隨機(jī)訪問等功能。
Collection
與數(shù)組不同。還有像s這樣的集合,它們具有不同的屬性。通常,如果要擁有動(dòng)態(tài)可增長(zhǎng)列表,請(qǐng)使用。Set
ArrayList

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
集合提供了數(shù)組所做的一切,但更多,但有一個(gè)例外。性能。
看看 ArrayList,它是數(shù)組的集合版本。
ArrayList 僅支持對(duì)象,不支持基元。如果要為每個(gè)值創(chuàng)建一個(gè) ArrayList 的 ints,則必須將其自動(dòng)裝箱到 Integer 中,這在性能方面是一個(gè)很大的開銷。
如果您想要的只是一個(gè)簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)一些東西,那么您就不需要在性能上受到打擊。但是,如果您需要做一些額外的事情,例如動(dòng)態(tài)調(diào)整大小的數(shù)組或集合,java可以通過為您提供集合來支持您。
添加回答
舉報(bào)