Collection - 遍历结合,增强for循环,泛型集合

使用迭代器遍历集合
Collection接口下提供的方法
Iterator iterator();

java.util,Iterator接口
三个步骤:1.问 2.取 3.删

/**
 * 使用迭代器遍历集合
 * Collection接口下提供的方法
 * Iterator iterator();
 *
 * java.util,Iterator接口
 * 三个步骤:1.问 2.取 3.删
 */

public class IteratorDemo {
    
    
    public static void main(String[] args) {
    
    
        Collection c = new ArrayList();
        c.add("one");
        c.add("two");
        c.add("three");
        c.add("four");
        c.add("five");
        System.out.println(c);

        //获得迭代器
        Iterator it = c.iterator();
        /**
         * 判断是否还有下一个元素
         */
        while (it.hasNext()){
    
    
            /**
             * 从集合中取出下一个元素
             */
            String str = (String)it.next();
            System.out.println(str+"!");

            /**
             * 删:在遍历的过程中,可以删除元素
             * 但是不能通过集合的删除方法删除。
             * 只能通过迭代器的方法删除
             */
            if ("three".equals(str)){
    
    
                it.remove();
            }
        }
        System.out.println(c);
    }
}

JDK1.5开始,支持了一个新的循环语法结构,增强for循环

  • 可以更方便的遍历数组和集合对象
  • 在编译其会将增强for循环的语法转换成对应的语法内容
  • 增强for循环遍历数组
public class NewFoeDemo1 {
    
    
    public static void main(String[] args) {
    
    
        String[] arr = {
    
    "one","two","three","four","five"};
//        for (int i = 0; i<arr.length;i++){
    
    
//            System.out.println(arr[i]);
//        }

        //使用增强for循环替换传统的遍历方法
        for (String str:arr){
    
    
            System.out.println(str);
        }
    }
}

增强for循环遍历集合

public class NewForDemo2 {
    
    
    public static void main(String[] args) {
    
    
        Collection c = new ArrayList();
        c.add("one");
        c.add("two");
        c.add("three");
        c.add("four");
        c.add("five");
        System.out.println(c);

        /**
         * 使用增强for循环遍历集合
         * 编译器在编译时也会将这个操作转换成迭代器
         * 所以在使用增强for循环遍历集合时不要对集合元素进行增删操作
         */
        for (Object o:c){
    
    
            System.out.println(o);
        }
    }
}
  • 泛型集合的好处
  1. 规定了这个集合中元素必须是同一类型的
  2. 取出元素时无需强制类型转换
  • 支持泛型的类型如果不指定反省了类型,默认object
/**
 * 泛型集合的好处
 * 1. 规定了这个集合中元素必须是同一类型的
 * 2. 取出元素时无需强制类型转换
 * 支持泛型的类型如果不指定反省了类型,默认object
 */
public class NowForDemo5 {
    
    
    public static void main(String[] args) {
    
    

        Collection<String> c = new ArrayList<>();
        c.add("one");
        c.add("two");
        c.add("three");
        c.add("four");
        c.add("five");
        for (String s:c){
    
    
            //只输出第一个字母
            System.out.println(s.charAt(0));
        }

        Iterator<String> it = c.iterator();
        while (it.hasNext()){
    
    
            String s = it.next();
            System.out.println(s);
        }
    }
}

Guess you like

Origin blog.csdn.net/sinat_33940108/article/details/121339594