单列集合顶层接口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);
});
相关推荐
文丑颜不良啊1 小时前
LeetCode2481~2500题目解析
java·leetcode
Flynn Liang2 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
聪明的笨猪猪2 小时前
实际工程问题:AI 生成 Spring Cache(@Cacheable / @CachePut / @CacheEvict)缓存注解踩坑
java·经验分享·面试·ai编程
愿有所息3 小时前
记一次 ARM64 + JDK8 上 fastjson2 的诡异数据错乱
java
秋饼3 小时前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
SL_staff4 小时前
JVS-BI 实战:业务人员如何用零代码 ELT + 可视化配置构建实时经营分析闭环
java·spring·全栈
SL_staff5 小时前
企业AI落地难?JVS-AI渐进式实践:安全可控、小切口验证、标准化沉淀与规模化复制
java·开源·aigc
SL_staff6 小时前
JVS数字底座实践:构建企业级统一内容管理平台的技术路径
java·产品
nice_lcj5206 小时前
【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端
java·后端·spring·spring ai·ai应用开发
桦说编程7 小时前
TransmittableThreadLocal 解读:从 CRR 机制到上下文所有权
java·后端·源码