Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来,直到几何中的元素全部被却出来,这种方法叫做迭代,描述在iterator接口里面
iterator接口的常用方法
hasNext() 如果集合里面有下一个元素们就返回 ture
next() 用来取出下一个元素
public static voidmain(String[] args) {
Collection col=new ArrayList();
col.add("abc");
col.add("bcd");//获得迭代器对象
Iterator it=col.iterator();while(it.hasNext()){
System.out.println(it.next());
}
}
集合元素的向下转型
集合可以存储所有种类的对象,是因为在存放时系统会对存放的对象自动进行转型,也就是提升成了object类的对象,这个时候如果要使用集合中元素的特有内容时,就调取不到了,所以必须要先向下转型才能继续操作,否则会报错
Collection col=new ArrayList();
col.add(new Person("熊大",18));
col.add(new Person("熊二",19));//向下转型
ArrayList list=(ArrayList)col;for(int i=0;i
System.out.println(list.get(i));
}
增强型for循环
作用:专门用来遍历数组和集合,但是由于内部还是iterator迭代器,所以无法对集合和元素进行增删操作
格式:
for(数据类 自定义变量:集合或数组容器名){
system.out.print(自定义变量
//来一个collection集合
Collection col=new ArrayList();
col.add(new Person("熊大",18));
col.add(new Person("熊二",19));//用增强型for循环遍历
for(Person p:col){
System.out.println(p);
}
java的泛型
定义格式: 修饰符 class 类名{}
ArrayList list = new ArrayList();//<>里面的String就是泛型
使用泛型的好处:
及那个运行时的类转换异常(ClassCastException),转移到了编译时期变成了编译失败,避免类型墙砖的麻烦
public static voidmain(String[] args) {//ArrayList list = new ArrayList();//<>里面的String就是泛型
List list=new ArrayList();
list.add("abc");
list.add("bcd");//list.add(123);//明确类型后,写入的类型不一样接着就报错
Iterator it=list.iterator();while(it.hasNext()){
String str=it.next();
System.out.println(str.length());
}
}