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