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());
            }
        }
    
    }

    效果如下:

     

  • 相关阅读:
    可图性判定HavelHakimi定理
    并查集入门
    js数组和函数应用
    DOM用法及应用
    javascript基础知识
    表单
    PHP变量
    30天自制操作系统开发笔记——IDT中断描述符表
    《30天自制操作系统》学习笔记——汇编程序磁盘BIOS调用
    汇编指令: LGDT、LIDT、LLDT、LMSW、LOADALL、LOADALL286、LOCK、LODSB、LODSW、LODSD
  • 原文地址:https://www.cnblogs.com/scw123/p/9755352.html
Copyright © 2011-2022 走看看