java实用类库提供了一套相当完整的容器类,其中基本的类型时List、Set、Queue和Map。这些对象类型称为集合类,也可以称之为容器。
ArrayList是最基本最可靠的容器,你可以把它当做“可以自动扩充自身尺寸的数组”来看待。
下面是一个简单的例子:
class Apple{
private static long counter;
private final long id = counter++;
public long id(){return id;}
}
public class Fruts {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList apples = new ArrayList();
for(int i=0;i<3;i++){
apples.add(new Apple());
}
for(int i=0;i
上面这种方式需要强制转型,下面使用泛型的例子:
class Apple{
private static long counter;
private final long id = counter++;
public long id(){return id;}
}
public class Fruts {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList apples = new ArrayList();
for(int i=0;i<3;i++){
apples.add(new Apple());
}
for(int i=0;i
基本上可以分为两种类型:
Collection类型:一个独立元素序列,这些元素都服从一条或多条规则。
Map类型:一组成对的“键值对”对象,允许用“键”来查找“值”。
java.util包中的Arrays和Collections类中都有很多实用方法,可以在一个Collection 中添加一组元素,注意类名中的s
下面就是添加的例子:
public class AddingGroups {
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection collections = new ArrayList(Arrays.asList(1,2,3,4,5));
Integer[] moreints = {6,7,8,9,10};
collections.addAll(Arrays.asList(moreints));
Collections.addAll(collections,11,12,13,14,15);
Collections.addAll(collections,moreints);
List list = Arrays.asList(16,17,18,19,20);
list.set(1, 99);
System.out.println(collections);
System.out.println(list);
}
}
下面例子将容器的内容打印出来,便于观察容器的存储方式:
public class PrintCollection {
static Collection fill(Collection collection){
collection.add("A");
collection.add("B");
collection.add("C");
collection.add("C");
return collection;
}
static Map fill(Map map){
map.put("A", "1");
map.put("B", "2");
map.put("C", "3");
map.put("C", "4");
return map;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(fill(new ArrayList()));
System.out.println(fill(new LinkedList()));
System.out.println(fill(new HashSet()));
System.out.println(fill(new TreeSet()));
System.out.println(fill(new HashMap()));
System.out.println(fill(new TreeMap()));
System.out.println(fill(new LinkedHashMap()));
}
}
运行结果:
[A, B, C, C]
[A, B, C, C]
[A, B, C]
[A, B, C]
{A=1, B=2, C=4}
{A=1, B=2, C=4}
{A=1, B=2, C=4}
对于这个结果可以看出,Set类型,元素不能重复;Map类型,对于每个键,只存储一次;