单列集合顶层接口collection,集合的遍历方法

集合分类

集合分为单列集合和双列集合

而我们之前学习的arraylist集合只是单列集合中的一种

顾名思义,单列集合每次只能添加一种元素,而双列集合每次能够添加两组元素

collection

collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的

它里面有许多的实现方法

1.public boolean add(E e):把给定的对象添加到当前集合中

ini 复制代码
Collection<String> o1=new ArrayList<>();
o1.add("zhang");

2.public boolean clear():清空当前所有的元素

ini 复制代码
Collection<String> o1=new ArrayList<>();
o1.add("zhang");
o1.clear();

返回[]

3.public boolean remove():把给定对象在当前集合中删除

csharp 复制代码
Collection<String> o1=new ArrayList<>();
o1.add("zhang");
o1.remove("zhang")

返回[]

4.public boolean isEmpty():判断当前集合是否为空,

底层是判断集合的长度是否为0.

5.public int size():返回集合中元素的个数/集合的长度

集合的遍历

1.迭代器遍历interator

markdown 复制代码
    迭代器在Java中的类是iterator,迭代器是集合专用的遍历方式
    

既然是类那么使用肯定要创建对象啦

ini 复制代码
Iterator<String> it=o1.iterator();

<>表示要集合里面元素类型,当然基本数据类型要使用包装类才能够使用

而迭代器对象默认指向当前集合的0索引(有点类似C语言的指针)

iterator中也有几个方法来帮助我们遍历数组

boolean hasNext():判断当前位置是否有无元素,有元素返回true,没有元素返回false

E next():获取当前位置的元素,并将迭代器对象移向下一个位置

ini 复制代码
while(it.hasNext()){
    String str = it.next();
    System.out.println(str);
}

遍历的代码就是这样的

遍历完毕后,要想再次遍历只能重新创建对象

当对一个空位置使用next就会报错

而如果在循环中使用两次next,如果集合元素是奇数就会出现上述报错

2.增强for遍历

这种遍历方式比较方便,底层就是迭代器,是为了简化迭代器的代码书写的

所有的单列结合和数组才能用增强for进行遍历

格式:

for(元素的数据类型 变量名:数组或者集合){

} 其中变量名表示 第三方变量,表示每次循环中集合中的元素

ini 复制代码
 Iterator<String> it=o1.iterator();
for (String s : o1) {
    System.out.println(s);
}

3.Lambda方式遍历

在集合的方法中有一种用于遍历的方法forEach(接口的实现类)

实现类可以用匿名内部类来写,而我们之前学了lambda的语法,可以大大简化代码

ini 复制代码
Iterator<String> it=o1.iterator();
o1.forEach((s)->{
    System.out.println(s);
});
相关推荐
知兀8 分钟前
【MybatisPlus】后端用枚举类,数据库用tinyint,存在枚举类型转换
java
StockTV11 分钟前
印度股票实时数据 NSE和BSE的实时行情、K 线及指数数据
java·开发语言·spring boot·python
User_芊芊君子13 分钟前
【OpenAI 把 AI 玩明白了】:自主推理 + 动态知识图谱,这 4 个技术突破要颠覆行业
java·人工智能·知识图谱
c++之路1 小时前
C++20概述
java·开发语言·c++20
Championship.23.241 小时前
Linux Top 命令族深度解析与实战指南
java·linux·服务器·top·linux调试
橘子海全栈攻城狮1 小时前
【最新源码】养老院系统管理A013
java·spring boot·后端·web安全·微信小程序
逻辑驱动的ken1 小时前
Java高频面试考点18
java·开发语言·数据库·算法·面试·职场和发展·哈希算法
冷雨夜中漫步2 小时前
Claude Code源码分析——Claude Code Agent Loop 详细设计文档
java·开发语言·人工智能·ai
直奔標竿2 小时前
Java开发者AI转型第二十六课!Spring AI 个人知识库实战(五)——联网搜索增强实战
java·开发语言·人工智能·spring boot·后端·spring
one_love_zfl2 小时前
java面试-微服务组件篇
java·微服务·面试