单列集合顶层接口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);
});
相关推荐
程序员欣宸12 小时前
LangChain4j实战之十三:函数调用,低级API版本
java·人工智能·ai·langchain4j
Java新手村13 小时前
【订单超时取消怎么设计】
java
阿蒙Amon13 小时前
C#每日面试题-常量和只读变量的区别
java·面试·c#
寻星探路14 小时前
【算法专题】滑动窗口:从“无重复字符”到“字母异位词”的深度剖析
java·开发语言·c++·人工智能·python·算法·ai
程序员小白条14 小时前
面试 Java 基础八股文十问十答第八期
java·开发语言·数据库·spring·面试·职场和发展·毕设
萤丰信息14 小时前
从 “钢筋水泥” 到 “数字神经元”:北京 AI 原点社区重构城市进化新逻辑
java·大数据·人工智能·安全·重构·智慧城市·智慧园区
week_泽15 小时前
第5课:短期记忆与长期记忆原理 - 学习笔记_5
java·笔记·学习·ai agent
像风一样自由15 小时前
android native 中的函数动态注册方式总结
android·java·服务器·安卓逆向分析·native函数动态注册·.so文件分析
兮动人15 小时前
Maven指定加载的类
java·maven·maven指定加载的类
wangkay8816 小时前
【Java 转运营】Day04:抖音新号起号前准备全指南
java·开发语言·新媒体运营