Java Review (二十四、集合-----Collection 接口)
Collection 接口是 List 、 Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合 ,也可用于操作 List 和 Queue 集合。 Collection 接口里定义了如下操作集合元素的方法:
- boolean add(Object 0): 该方法用于 向集合里添加 一个元素 。 如果集合对象被添加操作改变了,
则返回 true 。 - boolean addAll(Collection c): 该方法把集合 c 里 的所有元素添加到指定集合里 。 如果集合对象被添加操作改变了,则返回 true 。
- void clear(): 清除集合里的所有元素 , 将集合长度变为 0 。
- boolean contains(Object 0): 返回 集合里是否包含指定元素 。
- boolean containsAll(Collection c): 返 回集合里是否包含集合 c 里的所有元素。
- boolean isEmpty(): 返回集合是否为空 。 当集合长度为 0 时返回 true ,否则返回 false 。
- Iterator iterator(): 返回 一个 Iterator 对象,用 于遍历集合里的元素。
- boolean remove(Object 0): 删除集合中的指定元素 。, 当集合 中包含了 一个或多个元素。时,该
方法只删除第一个符合条件的元素,该方法将返回 true o - boolean removeAll(Collection c): 从集合中删除集合 c 里包含的所有元素( 相当于用调用该方法
的集合减集合 c) ,如果删除了 一个或一个以上的元素,则该方法返回 true 。 - boolean retainAll(Collection c): 从集合中 删 除集合 c 里不包含 的元素(相当于把调用该方法的集合变成该集合和集合 c 的交集),如果该操作改变了调用该方法的集合,则该方法返回 true 。
- int size(): 该方法返回集合里元素的个数。
- Object[] toArray(): 该方法把集合转换成一个数组,所有的集合元素变成对应的数组元素。
如下程序示范了如何通过上面方法来操作 Collection 集合里的元素:
public class CollectionTest
{
public static void main(String[] args)
{
Collection c = new ArrayList();
// 添加元素
c.add("孙悟空");
// 虽然集合里不能放基本类型的值,但Java支持自动装箱
c.add(6);
System.out.println("c集合的元素个数为:" + c.size()); // 输出2
// 删除指定元素
c.remove(6);
System.out.println("c集合的元素个数为:" + c.size()); // 输出1
// 判断是否包含指定字符串
System.out.println("c集合的是否包含\"孙悟空\"字符串:"
+ c.contains("孙悟空")); // 输出true
c.add("轻量级Java EE企业应用实战");
System.out.println("c集合的元素:" + c);
Collection books = new HashSet();
books.add("轻量级Java EE企业应用实战");
books.add("疯狂Java讲义");
System.out.println("c集合是否完全包含books集合?"
+ c.containsAll(books)); // 输出false
// 用c集合减去books集合里的元素
c.removeAll(books);
System.out.println("c集合的元素:" + c);
// 删除c集合里所有元素
c.clear();
System.out.println("c集合的元素:" + c);
// 控制books集合里只剩下c集合里也包含的元素
books.retainAll(c);
System.out.println("books集合的元素:" + books);
}
}
集合类就像容器,现实生活中容器的功能, 无非就是添加对象、删除对象、清空容器、判断容器是否为空等,集合类就为这些功能提供了对应的方法 。
参考:
【1】:《疯狂Java讲义》
【推荐】FFA 2024大会视频回放:Apache Flink 的过去、现在及未来
【推荐】中国电信天翼云云端翼购节,2核2G云服务器一口价38元/年
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用 .NET Core 实现一个自定义日志记录器
· [杂谈]如何选择:Session 还是 JWT?
· 硬盘空间消失之谜:Linux 服务器存储排查与优化全过程
· JavaScript是按顺序执行的吗?聊聊JavaScript中的变量提升
· [杂谈]后台日志该怎么打印
· 2000 Star,是时候为我的开源项目更新下功能了
· 面试官:DNS解析都整不明白,敢说你懂网络?我:嘤嘤嘤!
· [WPF UI] 为 AvalonDock 制作一套 Fluent UI 主题
· 基于.NET WinForm开发的一款硬件及协议通讯工具
· 内网穿透之http代理服务器