增强for循环遍历:
案例二
Collectionarr=new ArrayList();
arr.add(789);
arr.add(456);
arr.add(123);
//增强for循环
/*for(元素的数据类型 变量 : Collection集合or数组){
}*/
for(Integer i:arr){
System.out.println(i);
}
迭代器遍历:
//案例三
//1,创建集合对象。
Collectioncoll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
//2.获取容器的迭代器对象。通过iterator方法。
Iterator it = coll.iterator();
//3,使用具体的迭代器对象获取集合中的元素。参阅迭代器的方法
while(it.hasNext()){
System.out.println(it.next());
}
Collection接口的基本方法
Collection接口是集合中的顶层接口,那么它中定义的所有功能子类都可以使用
创建集合的格式:
方式1:Collection 变量名 = new ArrayList();
方式2:Collection 变量名 = new ArrayList();
集合元素的向下转型
Collection coll = new ArrayList();
coll.add("abc");
coll.add("aabbcc");
coll.add(1);
Iterator it = coll.iterator();
while (it.hasNext()) {
//由于元素被存放进集合后全部被提升为Object类型
//当需要使用子类对象特有方法时,需要向下转型
String str = (String) it.next();
System.out.println(str.length());
}
泛型和通配符
类定义格式:修饰符 class 类名 { }
接口定义格式:修饰符 interface接口名 { }
限定泛型的下限:
//? extends Person 限定泛型的上限
//? super Person 限定泛型的下限
public static void get(Collection extends Person> c){
Iterator> it=c.iterator();
while(it.hasNext()){
//向下转型
Object obj=it.next();
Person p=(Person)obj;
System.out.println(p.getName());
}