当前课程知识点:Java程序设计 >  第六章 对象群体的组织 >  6.6-遍历Collection >  遍历Collection

返回《Java程序设计》慕课在线视频课程列表

遍历Collection在线视频

遍历Collection

下一节:Map接口及其实现

返回《Java程序设计》慕课在线视频列表

遍历Collection课程教案、知识点、字幕

大家好

欢迎回来继续学习Java语言程序设计

这一节我们来学习如何遍历一个Collection

如果我们希望去遍历一个实现了

Collection接口的集合类的对象

那么有哪些主要的方法呢

首先可以通过Enumeration

或Iterator这两个接口

对集合进行遍历

另外可以用增强的

for循环来遍历集合

还可以通过聚集操作来遍历集合

现在我就把这几种方式

给大家做一个简单的介绍

Enumeration和Iterator

都能够从集合类的对象中

提取每一个元素

并且它还提供了

用于遍历元素的方法

Java中的许多方法

比如elements它都会

返回Enumeration类型的对象

而不是返回一个整个集合对象

Enumeration接口

它不能用于ArrayList对象

但是Iterator接口

既可以用于ArrayList

也可以用于Vector

Enumeration接口

是旧版本的Java的接口

那Iterator实际上

是对Enumeration接口的一个改进

所以现在在遍历集合元素的时候

我们优先选用Iterator接口

Iterator接口在遍历集合的时候

还可以同时去删除其中的对象

常用的方法有这样一些

像hasNext是判断这个集合中

是否还有下一个元素

Next可以取得

集合中的下一个元素

remove是去除一个元素

也就是删除一个元素

而这里注意是从集合中删除

最后一次调用Next的时候

返回的那个元素

而不是说

从这个Iterator类中去删除

下面的例子就演示了

怎么样使用Iterator

去遍历集合中的这些元素

在这一例子中

我们首先要构造一个String数组

然后对于这个数组

要进行一些过滤

将字符串长度大于4的

这些串滤掉

然后将余下的输出显示

要做这件事我们需要用到Vector

所以我们先构造一个向量

构造一个Vector

用数组来构造一个Vector

那我们首先

要把这个数组转成List

所以我们调用Arrays里面的

ArrayList方法数组转成列表

然后用它作为参数

去构造一个Vector

接下来我们就要遍历这个向量

遍历向量用什么

用这个iterator这个迭代器

那Vector它有一个iterator方法

可以返回一个迭代器

得到了这个迭代器以后

我们在while循环里面的每次

用这个hasNext

看还有没有下一个元素

如果有的话就把下一个元素

用next的方法取出来

转换成String类型字符串类型

然后判断它的长度是不是大于4

如果大于4我们就

将当前这个元素删除

从这个向量中删除要用remove

经过这样一轮遍历

同时就滤掉了长度大于4的

这样的元素

然后最后我们用这个println

输出一下整个向量

那么就是说它滤掉长度

大于4元素以后的剩下的内容

我们来看这个运行结果

在构造Vector之前的数组

是这个样子的

然后Vector里面

我们遍历过的元素是这些

那最后剩下的输出的元素

我们看到都是

长度不大于4的串的

第二种方式我们还可以

用我们处理数组的时候

就已经熟悉的这个增强的

for循环来遍历集合中的元素

现在我们来看一下

用这个增强的for循环来遍历集合还是挺方便的

在这儿我们也是

构造一个Vector对象

然后将一些字符串

压到这个对象里面去

add进去添加进去

然后接下来就是遍历一遍

遍历的话我们用这个

增强的这个for循环

用增强的for循环

这个时候我们不用去

管它循环要进行几次

那么用element方法

返回的这个集合的内容

里面的元素都会被依次遍历的

每一次会取出一个来

然后用来初始化这个String引用

也就说这个String引用

被会依次指向其中的所有元素

所以用这样的for循环

就依次的遍历了全部的元素了

第三种方式就是通过聚集操作

来遍历集合中的元素

通常聚集操作都是

与lambda表达式同时使用的

关于lambda表达式

我们在这个课里面

也没有课时去做详细介绍了

如果大家感兴趣的话

需要查阅更多的资料

现在我们就通过这个简单的事例

给大家一个大致的感觉

怎么样通过聚集操作来遍历

你写简单程序的时候

也可以先初步这样模仿

我们假设有一个实现了

Collection接口的

myShapesCollection

这样一个集合对象

其中有getColor方法

可以返回对象的颜色

getName方法可以返回对象的名字

那么我们接下来想做什么

想遍历这个对象中的元素

并且输出所有红色对象的名字

这个遍历就不是说

我必须要输出

所有的对象名字了

我们要有所选择

只输出红色对象的名字

那我们使用这个聚集操作

大家可以看到在这儿

首先通过这个Collection的对象

取得一个String一个流

然后在这个流上进行这种过滤

调用个filter方法

过滤出所有颜色是红色的对象

然后用forEach方法

对于这些所有的颜色

是红色的对象

依次进行统一的

这种输出名字的操作

这就是聚集操作配合的

这个lambda表达式

来进行集合元素的遍历

这一节我们简单了解了一下遍历Collection的三种途径

用Iterator是比较简单的

大家可以尝试

用增强for循环也是我们熟悉的

而聚集操作和lambda表达式

本身它不是我们这个课程

所要求的知识范围

但是我也给大家介绍一下

毕竟这是新版本JavaJDK的

非常有用的功能

大家要感兴趣的话

建议去参考更多的资料

这一节内容就是这些

Java程序设计课程列表:

第一章 Java语言基础知识

-1.0-导学

--1.0-导学

--JDK的安装与配置01

--JDK的安装与配置02

--JDK的安装与配置03

--编辑并执行第一个java程序01

--编辑并执行第一个java程序02

--编辑并执行第一个java程序03

--eclipse的安装和配置01

--eclipse的安装和配置02

--eclipse的安装和配置03

--使用eclipse进行Java的开发01

--使用eclipse进行Java的开发02

--使用eclipse进行Java的开发03

-1.1-Java与面向对象程序设计简介

--1.1.1 Java与面向对象程序设计简介

--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介

-1.2-基本数据类型与表达式

--1.2.1-基本数据类型与表达式

-第一章 Java语言基础知识--1.2-基本数据类型与表达式

-1.3-数组

--1.3.1-数组

-第一章 Java语言基础知识--1.3-数组

-1.4-算法的流程控制

--1.4.1-算法的流程控制

--第一章 Java语言基础知识--1.4-算法的流程控制

-1.5-第一章小结

--1.5.1-第一章小结

-第一章编程练习题

-课件

--外部链接

第一章续-习题讲解视频

-Java环境配置、Eclipse使用、Helloworld程序详解

--JAVA的安装和配置

--编写并执行第一个Java程序及Java的跨平台性

--eclipse的安装和配置

--使用eclipse建立Java项目、编写和运行Java程序

--Java注释和Eclipse中的注释操作

--详解HelloWorld程序

-Java数据类型

--Java数据类型介绍

--Java整数类型

--Java浮点类型

--Java字符类型和布尔类型

--数据类型实战

--数据类型转换

--Java强制类型转换精度损失示例与表达式中的数据类型转换

-Java数组

--Java数组介绍、声明与使用

--一维数组的初始化与length属性

--数组索引的原理与使用

--二维数组的介绍与使用

-Java变量

--Java的变量

-命令行参数

--命令行参数的介绍

第二章 类与对象

-2.0-导学

--2.0-导学

-2.1-面向对象方法的特性

--2.1-面向对象方法的特性

--第二章 类与对象--2.1-面向对象方法的特性

-2.2-1-类声明与对象创建

--2.2-1-类声明与对象创建

--第二章 类与对象--2.2-1-类声明与对象创建

-2.2-2-数据成员

--2.2-2-数据成员

--第二章 类与对象--2.2-2-数据成员

-2.2-3-方法成员

--2.2-3-方法成员

--第二章 类与对象--2.2-3-方法成员

-2.2-4-包

--2.2-4-包

--第二章 类与对象--2.2-4-包

-2.2-5-类的访问权限控制

--2.2-5-类的访问权限控制

--第二章 类与对象--2.2-5-类的访问权限控制

-2.3-1-对象初始化

--2.3-1-对象初始化

--第二章 类与对象--2.3-1-对象初始化

-2.3-2-内存回收

--2.3-2-内存回收

--第二章 类与对象--2.3-2-内存回收

-2.4-枚举类

--2.4-枚举类

--第二章 类与对象--2.4-枚举类

-2.5-应用举例

--2.5-应用举例

-2.6-第2章小结

--2.6-第2章小结

-第二章编程练习题

-课件

--第二章课件

第三章 类的重用

-3.0-导学

--3.0-导学

-3.1.1-3.1.2-类继承的概念和语法

--3.1.1-3.1.2-类继承的概念和语法

--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法

-3.1.3-隐藏和覆盖

--3.1.3-隐藏和覆盖

--第三章 类的重用--3.1.3-隐藏和覆盖

-3.2-Object 类

--3.2-Object 类

--第三章 类的重用--3.2-Object 类

-3.3-终结类与终结方法

--3.3-终结类与终结方法

--第三章 类的重用--3.3-终结类与终结方法

-3.4-抽象类

--3.4-抽象类

--第三章 类的重用--3.4-抽象类

-3.5-泛型

--3.5-泛型

--第三章 类的重用--3.5-泛型

-3.6-类的组合

--3.6-类的组合

-3.7-小结

--3.7-小结

-第三章编程练习题

-课件

--课件

第四章 接口与多态

-4.0-导学

--导学

-4.1-接口

--接口

--第四章 接口与多态--4.1-接口

-4.2.1-4.2.2-类型转换

--类型转换

--第四章 接口与多态--4.2.1-4.2.2-类型转换

-4.2.3-方法的查找

--方法的查找

--第四章 接口与多态--4.2.3-方法的查找

-4.3-多态的概念

--多态的概念

--第四章 接口与多态--4.3-多态的概念

-4.4-多态的应用举例

--多态的应用举例

--第四章 接口与多态--4.4-多态的应用举例

-4.5-构造方法与多态性

--构造方法和多态性

--第四章 接口与多态--4.5-构造方法与多态性

-4.6-本章小结

--本章小结

-第四章编程作业

-课件

--课件

第五章 输入输出

-5.0-导学

--5.0-导学

-5.1.1-5.1.2-异常处理的概念

--5.1.1-5.1.2-异常处理的概念

--第五章 输入输出--5.1.1-5.1.2-异常处理的概念

-5.1.3-5.1.5-异常的处理

--5.1.3-5.1.5-异常的处理

--第五章 输入输出--5.1.3-5.1.5-异常的处理

-5.2-输入输出流的概念

--输入输出流的概念

--第五章 输入输出--5.2-输入输出流的概念

-5.3.1-写文本文件

--写文本文件

--第五章 输入输出--5.3.1-写文本文件

-5.3.2-读文本文件

--读文本文件

--第五章 输入输出--5.3.2-读文本文件

-5.3.3-写二进制文件

--写二进制文件

--第五章 输入输出--5.3.3-写二进制文件

-5.3.4-读二进制文件

--读二进制文件

-5.3.5-File类

--File类

-5.3.6-处理压缩文件

--处理压缩文件

-5.3.7-对象序列化

--对象序列化

-5.3.8-随机文件读写

--随机文件读写

-5.4-本章小结

--本章小结

-课件

--课件

第六章 对象群体的组织

-6.0-导学

--导学

-6.1-Java集合框架介绍

--Java集合框架介绍

--第六章 对象群体的组织--6.1-Java集合框架介绍

-6.2-主要接口及常用的实现类

--6.2-主要接口及常用的实现类

--第六章 对象群体的组织--6.2-主要接口及常用的实现类

-6.3-常用算法

--常用算法

-6.4-数组实用方法

--6.4-数组实用方法

-6.5-基于动态数组的类型(Vector, ArrayList)

--基于动态数组的类型(Vector, ArrayList)

-6.6-遍历Collection

--遍历Collection

-6.7-Map接口及其实现

--Map接口及其实现

-6.8-第6章小结

--第6章小结

-课件

--课件

第七章 图形用户界面

-7.0-导学

--导学

-7.1-绘图

--绘图

-7.2-Swing基础

--Swing基础

-7.3-Swing的层次

--Swing的层次

-7.4-布局管理

--布局管理

-7.5-内部类

--内部类

-7.6-事件处理的基本概念

--事件处理的基本概念

-7.7-事件派发机制

--事件派发机制

-7.8-顶层容器

--7.8-顶层容器

-7.9-中间层容器(一)

--7.9-中间层容器(一)

-7.10-中间层容器(二)

--7.10-中间层容器(二)

-7.11-原子组件(一)

--7.11-原子组件(一)

-7.12-原子组件(二)

--7.12-原子组件(二)

-7.13-原子组件(三)

--7.13-原子组件(三)

-7.14-其它Swing特性

--7.14-其它Swing特性

-7.15-第7章小结

--7.15-第7章小结

-课件

--课件

遍历Collection笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。