资讯专栏INFORMATION COLUMN

Java知识点总结(Java容器-Iterator)

iliyaku / 2712人阅读

摘要:知识点总结容器知识点总结容器对象称作迭代器,用于方便地实现对容器内元素的遍历操作接口定义如下判断是否有元素没有被遍历返回游标当前位置的元素并将游标移动到下一个位置删除游标左面的元素,在执行完之后该操作只能执行一次迭代器的使用实现实现原理游

Java知识点总结(Java容器-Iterator)

@(Java知识点总结)[Java, Java容器]

Iterator

Iterator对象称作迭代器,用于方便地实现对容器内元素的遍历操作
Iterator接口定义如下:

boolean hasNext(); //判断是否有元素没有被遍历

Object next(); //返回游标当前位置的元素并将游标移动到下一个位置

void remove(); //删除游标左面的元素,在执行完next之后该操作只能执行一次

迭代器的使用
HashSet set = new HashSet();
set.add("1" );
set.add("2" );
set.add("3" );
/*Iterator it = set.iterator();
while (it.hasNext()) {
  String  obj = (String) it.next();
  System.out.println(obj);
}*/
for (Iterator it = set.iterator(); it.hasNext();) {
  String  obj  = (String) it.next();
  System.out.println(obj);      
}
Iterator实现
/**
 * Iterator实现原理
 */
private  class Itr implements Iterator {
        int cursor = 0;  //游标
        int lastRet = -1; //上一次遍历元素的下标
 
public  boolean hasNext() {
            return cursor != size();
        }
        public E next() {
            checkForComodification();
            try {
                int i = cursor;
                E next = get(i);
                lastRet = i;
                cursor = i + 1;
                return next;
            } catch (IndexOutOfBoundsException e) {
                checkForComodification();
                throw new NoSuchElementException();
            }
        }
        public void remove() {
            if (lastRet < 0)
                throw new IllegalStateException();
            checkForComodification();
 
            try {
                AbstractList.this.remove(lastRet);
                if (lastRet < cursor)
                    cursor--;
                lastRet = -1;
                expectedModCount = modCount;
            } catch (IndexOutOfBoundsException e) {
                throw new ConcurrentModificationException();
            }
        }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71248.html

相关文章

  • Java集合总结【面试题+脑图】,将识点一网打尽!

    摘要:而在集合中,值仅仅是一个对象罢了该对象对本身而言是无用的。将这篇文章作为集合的总结篇,但觉得没什么好写就回答一些面试题去了,找了一会面试题又觉得不够系统。 前言 声明,本文用的是jdk1.8 花了一个星期,把Java容器核心的知识过了一遍,感觉集合已经无所畏惧了!!(哈哈哈....),现在来总结一下吧~~ 回顾目录: Collection总览 List集合就这么简单【源码剖析】 Ma...

    yearsj 评论0 收藏0
  • Java识点总结Java容器-Collection)

    摘要:知识点总结容器知识点总结容器函数库是包下的一些接口和类,类是用来产生对象存放数据用的,而接口是访问数据的方式。底层也是数组实现,线程安全,效率低效率高,线程不安全。 Java知识点总结(Java容器-Collection) @(Java知识点总结)[Java, Java容器, JavaCollection] [toc] Collection Collection函数库是java.uti...

    GeekGhc 评论0 收藏0
  • Java识点总结Java容器-TreeSet)

    摘要:知识点总结容器知识点总结容器是接口的唯一实现,可以确保集合元素处于排序状态,底层是一棵排序树。底层使用红黑树算法进行维护,因此性能相对于来说要差一些,因为内部会自动进行排序操作。 Java知识点总结(Java容器-TreeSet) @(Java知识点总结)[Java, Java容器, JavaCollection, JavaSet] TreeSet TreeSet是SortedSet接...

    codergarden 评论0 收藏0
  • Collection集合识点总结

    摘要:和的区别是非线程安全的,效率高是基于线程安全的,效率低底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。基本上都是以为基础。 什么是集合 Java是一门面向对象的语言. 为了方便操作多个对象,那么我们就得把这多个对象存储起来 想要存储多个对象(变量),我们就需要一个容器 集合就是一个放数据的容器(集合类存放的都是对象的引用,而非对象本身) ...

    I_Am 评论0 收藏0
  • Week 2 - Java 容器 - 详细剖析 List 之 ArrayList, Vector,

    摘要:底层使用的是双向链表数据结构之前为循环链表,取消了循环。快速随机访问就是通过元素的序号快速获取元素对象对应于方法。而接口就是用来标识该类支持快速随机访问。仅仅是起标识作用。,中文名为双端队列。不同的是,是线程安全的,内部使用了进行同步。 前言 学习情况记录 时间:week 2 SMART子目标 :Java 容器 记录在学习Java容器 知识点中,关于List的需要重点记录的知识点。...

    MartinDai 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<