iterator迭代器,增强型for循环,java泛型

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());
        }
    }
原文地址:https://www.cnblogs.com/mr171733/p/9763207.html