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

}

效果如下:

原文地址:https://www.cnblogs.com/scw123/p/9755352.html

时间: 2024-10-06 08:52:27

Java的集合、Iterator迭代器的相关文章

JAVA基础——集合Iterator迭代器的实现

一.迭代器概述 1.什么是迭代器? 在Java中,有很多的数据容器,对于这些的操作有很多的共性.Java采用了迭代器来为各种容器提供了公共的操作接口.这样使得对容器的遍历操作与其具体的底层实现相隔离,达到解耦的效果. 在Iterator接口中定义了三个方法: 2.迭代器使用 public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("abc");

【转】Java学习之Iterator(迭代器)的一般用法 (转)

[转]Java学习之Iterator(迭代器)的一般用法 (转) 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.l

Java学习之Iterator(迭代器)的一般用法(转)

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承. (2)

java基础入门-iterator迭代器与集合下标的使用

今天说说集合的iterator迭代器与集合下标的使用 先上代码 import java.util.ArrayList; import java.util.Iterator; public class Test { public Test() { // 初始化List addItemToList(); } private ArrayList<String> list = new ArrayList<String>(); private void addItemToList() { f

Java——Collection集合、迭代器、泛型

集合 ——集合就是java提供的一种容器,可以用来存储多个数据. 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值. 集合存储的都是对象.而且对象的类型可以不一致.在开发中一般当对象多的时候,使用集合进行存储. 接口继承关系与实现 集合类存放于 Java.util 包中,主要有 3 种:set(集).list(列表包含 Queue)和 map(映射). 1. **Collection:**Collection 是集合 List.Se

Java学习之Iterator(迭代器)的一般用法和详解

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承

Java学习之Iterator(迭代器)的一般用法

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承. (2)

Java学习之Iterator(迭代器)的一般用法 (转)

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承. (2)

Java学习之Iterator(迭代器)

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承. (2)

Java学习之Iterator(迭代器)的一般用法(转)

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承