在Python中,我使用列表来存储集合,而在Java中,则有多种选择。 如果Java仅支持Collections,会有问题吗?
答案 0 :(得分:0)
数组是固定大小的数据类型,JVM支持这些数组,并提供诸如随机访问之类的功能。
Collection
与数组不同。也有Set
之类的集合,它们具有不同的属性。通常,如果您想拥有一个动态的可增长列表,请使用ArrayList
。
答案 1 :(得分:0)
java中的数组和集合有很多区别,其中一些是:
根据我们的要求,集合可以自然增长。我们可以增加或减少大小。数组的大小是固定的,一旦我们创建了数组,就无法根据需求增加或减少。
关于内存:建议使用集合,而在性能方面:建议使用数组。
数组只能容纳齐次元素,而集合可以同时容纳齐次元素和异构元素。
数组没有现成的方法,但是集合具有现成的数据结构和方法。
数组既可以容纳原语和包装对象,但集合只能容纳对象。
下面是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();
}
}
答案 2 :(得分:0)
除了一个例外,集合提供了数组所做的所有事情,但更多。 性能。
看看ArrayList,它是数组的Collection版本。
ArrayList仅支持对象,不支持原语。如果您想为每个值创建一个int的ArrayList,则必须将其自动装箱到Integer中,这会显着提高性能。
如果您想要的只是一个简单的数据结构来存储一些东西,则无需在性能上受到影响。但是,如果您需要做一些额外的事情,例如动态调整大小的数组或Set,java会通过为您提供Collections来支持您