zoukankan      html  css  js  c++  java
  • Java的集合、Iterator迭代器

    1、集合
    (1)集合存储的元素必须是引用类型数据[自动装箱(基本类型—>包装类)]jdk1.5版本之后

    建立一个  demo01  类

    package com.oracle.demo01;
    
    public class demo01 {
           private String name;
           private Integer age;
        public demo01() {
            super();
        }
        public demo01(String name, Integer age) {
            super();
            this.name = name;
            this.age = age;
        }
        public String toString() {
            return "demo01 [name=" + name + ", age=" + age + "]";
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        
    }

    建立一个  demo02  测试类

    package com.oracle.demo01;
    
    import java.util.ArrayList;
    
    public class demo02 {
    
        public static void main(String[] args) {
            ArrayList<demo01> list = new  ArrayList<demo01>();
            list.add(new demo01("熊大",20));      //这里的20、19、30虽然是int基本类型,但是由于自动装箱的缘故,是Integer引用数据类型
            list.add(new demo01("熊二",19));
            list.add(new demo01("琪琪国王",30));
            //遍历
            for(int i = 0;i < list.size();i++){
                System.out.println(list.get(i));
            }
        }
    
    }

    (2)collection接口的基本方法:
    contains(Object o):boolean;toArray():Object[](数组);

    package com.oracle.demo01;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class demo03 {
    
        public static void main(String[] args) {
            Collection<String> col = new  ArrayList<String>();
            col.add("你好");
            col.add("双十一");
            col.add("买买买");
            //移除
            /*col.remove("你好");*/
            //是否包含  返回布尔值
            System.out.println(col.contains("双十一"));
         //清除
    /*col.clear();
         //遍历得到的是一个空集合 ArrayList<String> list = (ArrayList<String>)col; for(int i = 0; i < list.size();i++){ System.out.println(list.get(i)); }
    */ //返回一个数组 Object[] obj = col.toArray(); for(int i = 0;i < obj.length;i++){ System.out.println(obj[i]); } } }

    效果如下:

    (3)Collection变量名= new ArrayList();不指定范型;
    集合的元素类型默认为Object类型,即任何类型的元素都可以存储。
    使用时注意判断、向下转型;

    举个例子:

    package com.oracle.demo01;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class demo05 {
    
        public static void main(String[] args) {
            //Collection也可以不写范型
            Collection col = new  ArrayList();
            //默认Object  什么类型都可以存   但是会出现警告
            col.add("123");
            col.add(123);
            col.add(12.3);
            //ArrayList 也可以不写范型
            ArrayList   list = (ArrayList)col;
            for(int i = 0;i < list.size();i++){
                if(list.get(i) instanceof String){
                    System.out.println(list.get(i));
                }    
            }    
        }
    
    }

    效果如下:


    2、Iterator迭代器
    (1)Collection集合元素的通用获取方式:
    在取元素之前先要判断集合中有没有元素,
    如果有,就把这个元素取出来,
    继续在判断,如果还有就再取出出来。
    一直把集合中的所有元素全部取出。
    这种取出方式专业术语称为迭代。
    (2)获取迭代器 iterator():Iterator<E>;
    (3)判断集合中有没有元素:hasNext():boolean;
    (4)把这个元素取出来:next():E;

    举个例子:

    package com.oracle.demo01;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class demo04 {
    
        public static void main(String[] args) {
              //迭代器
            Collection<String> col = new ArrayList<String>();
            col.add("abc");
            col.add("deg");
            //获取迭代器对象
            Iterator<String> it = col.iterator();
            System.out.println(it.hasNext());
            System.out.println(it.next());
            System.out.println("...");
            System.out.println(it.hasNext());
            System.out.println(it.next());
            System.out.println("...");
            System.out.println(it.hasNext());
            System.out.println(it.next());
        }
    
    }

    效果如下:

     可以运用while循环将代码优化成如下:

    package com.oracle.demo01;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class demo04 {
    
        public static void main(String[] args) {
              //迭代器
            Collection<String> col = new ArrayList<String>();
            col.add("abc");
            col.add("deg");
            //获取迭代器对象
            Iterator<String> it = col.iterator();
            while(it.hasNext()){
                System.out.println(it.next());
            }
        }
    
    }

    效果如下:

     

  • 相关阅读:
    android 多线程
    Uva 10881 Piotr’s Ants 蚂蚁
    LA 3708 Graveyard 墓地雕塑 NEERC 2006
    UVa 11300 Spreading the Wealth 分金币
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    HDU 4162 Shape Number
    HDU 1869 六度分离
    HDU 1041 Computer Transformation
    利用可变参数函数清空多个数组
  • 原文地址:https://www.cnblogs.com/scw123/p/9755352.html
Copyright © 2011-2022 走看看