`
hl756799782
  • 浏览: 77738 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java集合学习小结(2)--转载

阅读更多
Iterator接口

Collection接口没有做到对于对象的遍历,但是Iterator接口可以。

ArrayList类顾名思义,它的底层用的是数组作为存储空间。LinkedList类顾名思义,它的底层用的是链表作为存储空间,但是这些存储空间很可能不是像ArrayList那样是连续的,而靠指针联系起来。所以由于底层的结构不一样,所以写不出统一的遍历的方法。

但是各种容器怎么遍历,只有容器本身它自己最清楚。所以Iterator要求容器返回一个实现了Iterator接口的对象回来。用这个对象来遍历容器里的不同元素。



所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象

这里就涉及到了多态,返回来的这个对象实现了Iterator接口,这就是继承;既然实现了这个接口,就重写了方法,这就是重写;比如Collection c= new HashSet();Iteratot i=c.iterator()这就是父类引用指向子类对象

Iterator接口在java.util软件中

可以把iterator看作一个游标

这个接口有三个方法:
方法boolean hasNext() 如果仍有元素可以迭代,则返回 true。即判断游标右边是否有元素
方法E next() 返回迭代的下一个元素。返回游标右边的元素,然后游标右移。 
方法void remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。即游标移动后删除游标左边的元素(游标移动前方法E next()返回的游标右边的元素),在执行E next()后此方法只能执行一次。

实现Iterator接口就实现了这三个方法。

Iterator对象的remove方法时在迭代过程中删除元素唯一安全的方法。例如Collection c= new HashSet();Iteratot i=c.iterator()时,可以利用i.remove( )而不可以利用c.remove( )


增强的for语句了解即可

增强的for语句对于遍历array或者Collection的时候相当简便,其余时候不推荐使用



Set接口

实现Set接口的类它像一个集合——没有顺序且不重复


List接口



List接口是Collection的子接口,实现了List接口的容器类中的元素是有序的,而且不可以重复。

List容器中的元素对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。

接口的重要方法有:
方法E get(int index) 返回列表中指定位置的元素。 
方法E set(int index, E element) 用指定元素替换列表中指定位置的元素(可选操作)。即把旧值作为返回值

方法boolean add(E e) 向列表的尾部添加指定的元素(可选操作)。 
方法void add(int index,E element) 在列表的指定位置插入指定元素(可选操作)。

方法int indexOf(Object o) 返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。显然,它也用了equals方法。
 
 
Java.util.Collections(注意不是Collection接口,且Collections类中的所有方法均是静态的)提供了一些静态方法实现了基于List容器的一些常用方法。如下:
方法void sort(List)对List容器内的元素排序。
方法void shuffle(List)对List容器内的对象进行随机排序。
方法void shuffle(List)对List容器内的对象进行随机排序。
方法void fill(List)用一个特定的对象重写整个list容器,即全部替换为它自己 
分享到:
评论

相关推荐

    java集合小结

    ### Java集合小结 #### 一、集合的概念与重要性 集合是Java编程语言中用于存储、管理和操作数据的一种重要工具。它提供了多种数据结构来适应不同的应用场景,从而有效地提高程序开发效率。从数据结构的角度来看,...

    java集合类知识总结--思维导图文件xmind

    java集合类知识总结--思维导图文件xmind xmind文件类型 总结了java常用集合相关问题 包括map、set、list、数组等

    Java学习IO流小结--字节流

    主要描述了常用字节流的用法,附上一些代码!

    javacv-platform-1.3-bin.zip

    JavaCV(Java Computer Vision)是一个开源的计算机视觉库,它为Java和Android提供了对各种流行的计算机视觉库的访问,如OpenCV、FFmpeg、Face_recognition等。在本例中,我们关注的是`javacv-platform-1.3-bin.zip`...

    深入Java集合学习系列

    文件"深入Java集合学习系列:HashMap的实现原理 - 莫等闲 - ITeye技术网站.mht"将详细解析HashMap的内部节点结构、扩容机制以及处理哈希冲突的方法。 接下来,ArrayList是一个动态数组,它继承自AbstractList并实现...

    javacv-platform-1.3.3-bin.zip

    javacv官方最新全量jar包,javacv-platform-1.3.3-bin.zip,由于github国内下载较慢,此文件只作为分流,由于现在csdn没办法设置免费资源了,只能设置最低的2分,望大家见谅!

    java基础教程----精华版

    Java是一种广泛使用的面向对象的编程语言,以其平台独立性、安全性、健壮...这份"java基础教程----精华版"应该涵盖了这些主题,并且可能还有更多的实践指导和示例代码,对于学习和巩固Java编程基础是非常有价值的资源。

    eclipse-java-indigo-SR2-win32

    "eclipse-java-indigo-SR2-win32" 版本是针对Windows 32位系统的Eclipse IDE的一个特定构建,它属于Eclipse Indigo Service Release 2(SR2)。Indigo是Eclipse的第3.7版本,发布于2011年,它带来了许多新特性和改进...

    java笔记.zip

    尚硅谷康师傅java学习笔记。 、2020-4-5 java学习笔记 2020-4-6 java笔记 ---内部类 2020-4-6 java笔记 ---异常 2020-4-6 java笔记 --多线程 2020-4-8 java笔记 String类 2020-4-9 java 比较器 2020-4-10 java笔记 ...

    mysql-connector-java-5.1.40.zip和mysql-connector-java-5.1.10.jar

    本文将深入探讨这两个文件:"mysql-connector-java-5.1.40.zip" 和 "mysql-connector-java-5.1.10.jar",以及它们在Java开发中的作用。 首先,`mysql-connector-java-5.1.40.zip` 是一个压缩文件,包含了MySQL ...

    JAVA课程PPT-----最新学习资料

    2. Java环境配置:如何安装JDK(Java Development Kit),设置环境变量,确保开发环境的正确搭建。 3. Java语法基础:学习基本的数据类型、变量、运算符、流程控制语句(如if-else,switch,for,while)以及方法...

    java入门学习视频--java入门学习视频

    java入门学习视频 java一些基础性的知识 数组集合 I/o流等等 java入门学习视频 java一些基础性的知识 数组集合 I/o流等等

    Java-Java集合教程

    通过学习Java集合教程,开发者可以掌握如何高效地管理对象集合,以及在不同场景下选择合适的集合类型。视频教程将通过实例和演示,帮助学习者更直观地理解和运用这些概念。在实际项目中,熟练掌握Java集合框架能极大...

    Java集合类性能分析

    ### Java集合类性能分析 #### 一、Java集合框架概览 Java集合框架是一个非常重要的概念,它提供了处理数据集合的标准方法。集合框架的核心部分主要包括集合接口、抽象类以及具体的实现类。 - **集合接口**:Java...

    java_Java_学习笔记.zip

    2. **Java环境搭建**: - 安装Java Development Kit (JDK),包含Java编译器javac和运行时环境Java Runtime Environment (JRE)。 - 设置JAVA_HOME环境变量,方便命令行使用Java工具。 3. **Java语法基础**: - ...

    java8集合源码-amazon-kinesis-data-analytics-java-getting-started:构建AmazonKi

    java8集合源码amazon-kinesis-data-analytics-java-getting-started 在 . 构建 JAR 创建target/aws-kinesis-analytics-java-apps-1.0.jar 。 $ make docker run --volume /home/kit/wrk/src/github....

    详解Java实现的k-means聚类算法

    2. Map:Map是Java中的一种集合类型,用于存储质心和簇的对应关系。 3. SQL:SQL是用于操作数据库的语言,在k-means聚类算法中,需要使用SQL来读取数据源。 4. Iterator:Iterator是Java中的一种接口,用于遍历集合...

    java集合与泛型[参照].pdf

    Java集合框架是Java编程语言中处理对象集合的重要工具,它提供了高效的数据存储和操作机制。在Java.util包中,我们找到了Collection接口及其实现类,这是整个集合框架的基础。集合框架由两个主要部分构成:...

    java8集合源码分析-architecture-road:建筑师的成长之路

    可以快速理解的有用的小Java函数的精选集合 - Java 7 示例 - 30秒收集有用的Java 8片段 - 现代Java - Java8指南 - 《跟上 Java 8》视频课程源码 - java 11示例代码 - Java常用技术 Spring、核心等技术代码 - 旨在...

    mysql-connector-java-5.1.37jar包和源码

    在本案例中,"mysql-connector-java-5.1.37.jar" 是一个特定版本的MySQL JDBC驱动程序,发布于2016年,属于较旧但仍然广泛使用的版本。这个jar包是Java开发者用来连接到MySQL服务器的关键组件。 首先,我们需要了解...

Global site tag (gtag.js) - Google Analytics