java 集合2(迭代器)

迭代器方法:(把迭代器想象成抓娃娃机的爪子)

hasNext()     问是否有元素可遍历,如果有元素可以遍历,返回true,否则返回false

工作原理:这一个迭代的过程是这样的,获取到迭代器时候迭代器有个指针,初始时

      指向集合的第一个元素。然后一个个的按顺序遍历,最后移动到集合中没有元素了。

(这是看源代码看的)

next()     获取元素//如果判断有那么就用该方法开始抓,一次只能抓一个

工作原理:

void  remove()    移除迭代器最后一次返回的元素(看下面代码

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class EX10 {

    public static void main(String[] args) {

        Collection c = new ArrayList();
        c.add("狗娃");
        c.add("狗剩");
        c.add("铁蛋");

        Iterator it = c.iterator();//返回一个迭代器
        System.out.println("师范有元素可以遍历? " + it.hasNext());
        while(it.hasNext()){
            System.out.println("获取元素:" + it.next());//一次一个
        }

        System.out.println();
        Collection c1 = new ArrayList();
        c1.add("狗娃");
        c1.add("狗剩");
        c1.add("铁蛋");

        Iterator it1 = c1.iterator();
        while (it1.hasNext()){
            it1.next();
            it1.remove();
        }
        System.out.println("移除之后的结果是:" + c1);
        //最后输出的是空集合

        /*为什么iterator() 方法返回的是一个接口类型,为什么接口又可以调用方法?
            iterator 实际上是返回iterator 接口的实现类方法。
            实际上是多态的应用:
            nterface Moeny{
    public void print();
}

class Worker implements Moeny{
    @Override
    public void print() {
        System.out.println("工人正在赚钱");
    }
}

class Demo {
    public static void main(String[] args) {
        Moeny m = test();
        m.print();
    }
    public static Worker test(){
        return new Worker();
    }
}

        */
    }
}
时间: 2024-10-11 16:17:03

java 集合2(迭代器)的相关文章

【9.0】对于java集合的迭代器的底层分析

前言:如果对java的集合的遍历(主要是HashMap中的keySet() 和 entrySet()是如何取值并且可以实现遍历的)不是很明白的话,有兴趣深入了解的小伙伴,本文可以作为一个参考,由于时间的原因,就着重讲其遍历的核心代码,底层迭代器的分析.如果对集合的遍历已经迭代器没有基本的理解的话,建议先看看相关的文章:不然很难看懂本文.推荐几篇相关博文: 1.实在没想到系列--HashMap实现底层细节之keySet,values,entrySet的一个底层实现细节 2.Java迭代器深入理解及

Java集合中迭代器

迭代器的作用:就是用于抓取集合中的元素. 迭代器的方法: hasNext() 问是否有元素可遍历.如果有元素可以遍历,返回true,否则返回false .next() 获取元素...remove() 移除迭代器最后一次返回 的元素 NoSuchElementException 没有元素的异常. 出现的原因: 没有元素可以被迭代了... import java.util.ArrayList; import java.util.Collection; import java.util.Iterato

Java 集合:迭代器(Iterator, Iterable)

Iterator接口 public interface Iterator<E> { boolean hasNext(); E next(); void remove(); } 访问元素前需要使用hasNext进行判断是否有元素存在,如果有再通过next操作获取,直接使用next操作而不进行hasNext检测,当到达末尾时会抛出NoSuchElement异常 Iterator的remove操作 好久没有看JDK代码了,今天翻看Java Core看到迭代器里面的注意点,居然一点都回忆不起来了.先看

集合 java中的迭代器

今天学习了 集合,但是感觉对于迭代器不是 很明白,所以研究了一下! 在 JDK中 Collection作为集合的顶级容器, 她实现了Java.lang.Iterable  接口! Iterable:  可迭代的, 想使用迭代功能的容器必须实现这个顶级接口,中的 iterator() 方法. Iterator:迭代器. 每个容器的内部都有不同的迭代器实现.抽取出她们的共性,我们抽取出 Iterator 接口. 我们查看源码 Iterator: public interface Iterator<E

JavaSE入门学习38:Java集合框架之迭代器

一Iterator接口 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层 结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的迭代器(Iterator)给我们提供了一种通用的方式来访问集合中的元素.可以知道的是,它只是提供了一个 接口,并没有提供真正的Iterator类.Iterator是对collection进行迭代的迭代器. Iterator接口定义了如下的方法: Java中的Iterator功能比较简单,并且只

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

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

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

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

初识java集合——迭代器

* Collection接口中有2个基本的方法 * add和iterator * * add(E e)是用于向集合中添加元素,如果添加元素成功,则返回true, 反之为false(例如向集里面添加,因为集是不允许重复的) * * Iterable接口只包含了一个方法 * Iterator<E> iterator(); * 编译器将foreach循环翻译为带有迭代器的循环 * foreach可以与任何实现了Iterable接口的对象一起工作 * Collection接口扩展了Iterable接口

Java—集合框架List

集合的概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总和 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 集合的作用 在类的内部,对数据进行组织(针对作用与意义一样的属性,将他们放到一个集合中) 简单而快速的搜索大数量的条目 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或删除有关元素 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型 与数组相比 数组的长度

Java 集合

在Java Collections Framework中,不同类型的集合使用不同类型的数据结构以不同的方式存储它们的元素. 集合框架提供了遍历集合的以下方法: 使用迭代器 使用for-each循环 使用forEach()方法 使用迭代器 迭代器可以对集合执行以下三个操作: 检查是否有尚未访问的元素. hasNext() 检查是否有下一个访问的元素. next() 删除集合的最后访问元素. remove() 例子1 使用迭代器打印列表的所有元素: import java.util.ArrayLis