11.3添加一组元素
接受一个数组或用逗号隔开的元素列表
Arrays.asList(1,2,3,4,5)
Integer[] moreInts={6,7,8,9,10};
collection.addAll(Arrays.asList(moreInts));
collection.addAll(Collection c)接收一个Collection对象
Collections.addAll(Collection c,moreInts);
Collections.addAll(Collection c,11,12,13,14);接收Collection对象和一个可变参数列表
直接使用Arrays.asList()的输出,但其底层实现仍是数组,当发生更改数组长度的操作会报错(add delete)
List list=Arrays.asList(16,17,18,19,20);
list.set(1, 99);
//list.add(21);更改数组长度
class Snow {}
class Powder extends Snow {}
class Light extends Powder {}
class Heavy extends Powder {}
class Crusty extends Snow {}
class Slush extends Snow {}
public class AsListInference {
public static void main(String[] args) {
List snow1 = Arrays.asList(
new Crusty(), new Slush(), new Powder());
1)Arrays.asList()中只有Power类型,创建List而不是List
// Won’t compile:
// List snow2 = Arrays.asList(
// new Light(), new Heavy());
// Compiler says:
// found : java.util.List
// required: java.util.List
2)从第一个参数确定目标类型
// Collections.addAll() doesn’t get confused:
List snow3 = new ArrayList();
Collections.addAll(snow3, new Light(), new Heavy());
// Give a hint using an
// explicit type argument specification:
3)显示类型参数说明
List snow4 = Arrays.asList(
new Light(), new Heavy());
}
} ///:~
11.4容器打印
List ArrayList LinkedList 插入顺序
Set 元素不能重复
HashSet复杂的存储方式,获取元素最快
TreeSet比较结果的升序,定义类时实现comparable接口,自定义排序方式
LinkedSet 被添加的顺序保存对象
Map