类型
- ArrayList(长于随机访问元素,但是在中间插入和删除元素时较慢)
- LinkList(优化了顺序访问,在随机访问方面相对较慢,特性集较ArrayList更大)
例子
public static void print(String s){
System.out.println(s);
}
// Random rand = new Random(47);
// List<Pet> pets = Pets.arrayList(7);
public static void main(String args[]){
Random rand = new Random(47);
List<String> pets = new ArrayList();
pets.add("Rat");
pets.add("Manx");
pets.add("Cymric");
pets.add("Mutt");
pets.add("Pug");
pets.add("Cymric");
pets.add("Pug");
print("1: "+pets);
pets.add("Hamster");
print("2: "+pets);
print("3: "+pets.contains("Hamster"));
pets.remove("Hamster");
String p = pets.get(2);
print("4: "+p+" "+pets.indexOf(p) );
String cymric = "Cymric";
print("5: "+pets.indexOf(cymric));
print("6: "+pets.remove(cymric));
print("7: "+pets.remove(p));
print("8: "+pets);
pets.add(3,"Mouse");
print("9: "+pets);
List<String> sub = pets.subList(1, 4);
print("subList: "+sub);
print("10: "+pets.containsAll(sub));
Collections.sort(sub);
print("sorted subList: "+sub);
print("11: "+pets.containsAll(sub));
Collections.shuffle(sub,rand);
print("shuffle subList: "+sub);
print("12: "+pets.containsAll(sub));
List<String> copy = new ArrayList<String>(pets);
sub = Arrays.asList(pets.get(1),pets.get(4));
print("sub: "+sub);
copy.containsAll(sub);
print("13: "+copy);
copy = new ArrayList<String>(pets);
copy.remove(2);
print("14: "+copy);
copy.removeAll(sub);
print("15: "+copy);
copy.set(1, "Mouse");
print("16: "+copy);
copy.addAll(2,sub);
print("17: "+copy);
print("18: "+pets.isEmpty());
pets.clear();
print("19: "+pets);
print("20: "+pets.isEmpty());
}
//output
/*
5: 2
1: [Rat, Manx, Cymric, Mutt, Pug, Cymric, Pug]
2: [Rat, Manx, Cymric, Mutt, Pug, Cymric, Pug, Hamster]
3: true
4: Cymric 2
5: 2
6: true
7: true
8: [Rat, Manx, Mutt, Pug, Pug]
9: [Rat, Manx, Mutt, Mouse, Pug, Pug]
subList: [Manx, Mutt, Mouse]
10: true
sorted subList: [Manx, Mouse, Mutt]
11: true
shuffle subList: [Mouse, Manx, Mutt]
12: true
sub: [Mouse, Pug]
13: [Rat, Mouse, Manx, Mutt, Pug, Pug]
14: [Rat, Mouse, Mutt, Pug, Pug]
15: [Rat, Mutt]
16: [Rat, Mouse]
17: [Rat, Mouse, Mouse, Pug]
18: false
19: []
20: true
*/
1.contains()方法来确定某个对象是否在列表内
2.remove()移除某个元素(若该元素有多个,移除所有该元素)
3.indexOf()获取对象在List中所处位置(获取第一个出现的位置)
4.subList(a,b)从列表中获得一个片段,左闭右开
5.containsAll()包含该集合的所有元素(Collecions.sort()和Collections.shuffle()(随机排序)不会影响)
6.retainAll()保留了同时在copy和sub中的元素(依赖于equals)
7.removeAll()移除所有元素
8.set(),replace(),替换
9.addAll()从制定位置插入一个列表
10.toArray()将Collection转换成一个数组