Java 数据结构算法Collection接口迭代器示例详解

 更新时间:2022年09月15日 14:35:16   作者:程序喵正在路上  
这篇文章主要为大家介绍了Java 数据结构算法Collection接口迭代器示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Java合集框架

数据结构是以某种形式将数据组织在一起的合集(collection)。数据结构不仅存储数据,还支持访问和处理数据的操作

在面向对象的思想里,一种数据结构也被认为是一个容器(container)或者容器对象(container object),它是一个能存储其他对象的对象,这里的其他对象常被称为数据或者元素

定义一种数据结构从实质上讲就是定义一个类。数据结构类应该使用数据域存储数据,并提供方法支持查找、插入和删除等操作

Java 提供了很多能有效地组织和操作数据的数据结构。这些数据结构通常称为 Java 合集框架(Java Collections Framework

Collection接口

Collection 接口为线性表、向量、栈、队列、优先队列以及集合定义了共同的操作

SetListCollection 的子接口

下面是实现 Collection 的子接口、实现子接口的抽象类以及后面的具体类

Collection 接口中定义了以下方法:

方法及返回类型描述
add(o: E) : boolean添加一个新的元素 o 到合集中
addAll(c: Collection<? extends E>) : boolean将合集 c 中的所有元素添加到该合集中
clear() : void从该合集删除所有元素
contains(o: Object) : boolean如果该合集包含元素 o,则返回 true
containsAll(c : Collection<?>) : boolean如果该合集包含 c 中所有的元素,则返回 true
equals(o: Object) : boolean如果该合集等同于另外一个合集 o,则返回 true
hashCode() : int返回该合集的哈希码
isEmpty() : boolean如果该合集没有包含元素,则返回 true
remove(o: Object) : boolean从该合集中移除元素 o
removeAll(c: Collectioin<?>) : boolean从该合集中移除 c 中的所有元素
retainAll(c: Collectioin<?>) : boolean保留同时位于 c 和该合集中的元素
size() : int返回该合集中的元素数目
toArray() : Object[]为该合集中的元素返回一个 Object 数组

Collection 接口提供了在集合中添加与删除元素的基本操作。add 方法给合集添加一个元素,addAll 方法把指定合集中的所有元素添加到这个合集中,remove 方法从元素中删除一个元素,removeAll 方法从这个合集中删除指定合集中的所有元素,retainAll 方法保留既出现在这个合集中也出现在指定合集中的元素。所有这些方法都返回 boolean 值,如果执行方法改变了这个合集,那么返回值为 trueclear 方法简单地移除合集中的所有元素

方法 addAllremoveAllretainAll 类似于集合上的并、差、交运算

Collection 接口提供了多种查询操作,方法 size 返回合集中元素的个数,方法 contains 检测合集中是否包含指定的元素,方法 containsAll 检测这个合集中是否包含指定合集中的所有元素。如果合集为空,方法 isEmpty 返回 true

Collection 接口的 toArray 方法返回一个合集的数组表

迭代器

每种合集都是可迭代的(Iterable),可以获得合集的 Iterator 对象来遍历合集中的所有元素

Iterator 是一种经典的设计模式,用于在不需要暴露数据是如何保存在数据结构的细节的情况下,来遍历一个数据结构

Iterable 接口中定义了以下方法:

方法及返回类型描述
iterator() : Iterator<E>为该合集中的元素返回一个迭代器

Iterator 接口中定义了以下方法:

方法及返回类型描述
hasNext() : boolean如果该迭代器还要遍历更多元素,则返回 true
next() : E返回该迭代器中的下一个元素
remove() : void移除使用 next 方法获取的上一个元素

Collection 接口继承自 Iterable 接口,Iterable 接口定义了 iterator 方法,该方法会返回一个迭代器

Iterator 接口为遍历各种类型的合集中的元素提供了一种统一的方法,Iterator 接口中的 iterator() 方法会返回一个 Iterator 的实例,这个实例可以使用 next() 方法对合集中的元素进行顺序访问,使用 hasNext() 方法来检测迭代器中是否还有更多的元素,以及使用 remove() 方法来移除迭代器返回的最后一个元素

写一个案例感受一下迭代器的魅力

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class TestIterator {
    public static void main(String[] args) {
        Collection&lt;String&gt; collection = new ArrayList&lt;&gt;();
        collection.add("Hello");
        collection.add("World");
        collection.add("Java");
        //遍历方法一
        Iterator&lt;String&gt; iterator = collection.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next().toUpperCase());
        }
        //遍历方法二
        for (String c : collection) {
            System.out.println(c.toUpperCase());
        }
    }
}

运行结果如下

以上就是Java 数据结构算法Collection接口迭代器示例详解的详细内容,更多关于Java Collection接口迭代器的资料请关注脚本之家其它相关文章!

相关文章

  • 详解springcloud Feign的Hystrix支持

    详解springcloud Feign的Hystrix支持

    这篇文章主要介绍了详解springcloud Feign的Hystrix支持,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Java实现获取指定个数的不同随机数

    Java实现获取指定个数的不同随机数

    今天小编就为大家分享一篇关于Java实现获取指定个数的不同随机数,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • JAVA计算两个日期相差的实例

    JAVA计算两个日期相差的实例

    在java中我找了一下关于计算两个日期之间相差的天数方法有10多种实现方法,下面总结一下常用的几种计算两个日期之间相差的天数实例
    2013-11-11
  • Java基础学习之方法的重载知识总结

    Java基础学习之方法的重载知识总结

    今天带大家来回顾Java基础知识,文中对Java方法的重载相关知识作了非常详细的介绍,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java实现自定义枚举值校验器的示例代码

    Java实现自定义枚举值校验器的示例代码

    这篇文章主要为大家详细介绍了Java实现自定义枚举值校验器的相关资料,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-02-02
  • Redis分布式锁介绍与使用

    Redis分布式锁介绍与使用

    服务器集群项目中的锁是无法精准的锁住线程资源的,于是我们就是需要使用分布式锁,分布式锁该如何使用又有什么注意点呢?就让我们进入接下来的学习
    2022-09-09
  • 使用Spring Boot上传文件功能

    使用Spring Boot上传文件功能

    上传文件是互联网中常应用的场景之一,最典型的情况就是上传头像等,今天就带着大家做一个Spring Boot上传文件的小案例,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-01-01
  • java接口使用默认方法的讲解

    java接口使用默认方法的讲解

    在本篇文章里小编给大家整理了一篇关于java接口使用默认方法的讲解内容,有需要的朋友们可以学习下。
    2021-04-04
  • Spring Cloud Feign性能优化代码实例

    Spring Cloud Feign性能优化代码实例

    这篇文章主要介绍了Spring Cloud Feign性能优化代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • spring aop注解配置代码实例

    spring aop注解配置代码实例

    这篇文章主要介绍了spring aop注解配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论