当前位置: 首页 > news >正文

Java Collection接口解析

Collection接口概述

Collection是Java单列集合的顶层接口,定义了所有单列集合共性的方法。List、Set、Queue等子接口都继承自Collection。它提供了对集合元素的基本操作,如添加、删除、遍历等。

红色为接口,蓝色为实现类。。

List系列集合:添加的元素是有序、可重复、有索引
Set系列集合:添加的元素是无序、不重复、无索引

常用方法分类

Collection接口的方法可分为以下几类:

  • 添加元素:add(), addAll()
  • 删除元素:remove(), removeAll(), clear()
  • 查询元素:contains(), containsAll(), isEmpty(), size()
  • 遍历元素:iterator()
  • 转换操作:toArray()


添加元素示例

add()方法用于向集合中添加单个元素,addAll()用于添加另一个集合的所有元素。

Collection<String> coll = new ArrayList<>();
coll.add("Java");
coll.add("Python");Collection<String> otherColl = new ArrayList<>();
otherColl.add("C++");
otherColl.add("Go");coll.addAll(otherColl);
System.out.println(coll); // 输出: [Java, Python, C++, Go]


删除元素示例

remove()删除指定元素,removeAll()删除与另一集合的交集,clear()清空集合。

Collection<String> coll = new ArrayList<>(Arrays.asList("A", "B", "C", "D"));
coll.remove("B"); // 移除"B"
System.out.println(coll); // 输出: [A, C, D]Collection<String> toRemove = Arrays.asList("C", "D");
coll.removeAll(toRemove); // 移除"C"和"D"
System.out.println(coll); // 输出: [A]coll.clear(); // 清空集合
System.out.println(coll.isEmpty()); // 输出: true


查询元素示例

contains()判断元素是否存在,size()返回集合大小。

Collection<Integer> numbers = new HashSet<>(Arrays.asList(10, 20, 30));
System.out.println(numbers.contains(20)); // 输出: true
System.out.println(numbers.size()); // 输出: 3


遍历集合示例

通过iterator()获取迭代器,或使用增强for循环遍历。

Collection<String> languages = new ArrayList<>(Arrays.asList("Java", "Python", "Ruby"));// 方式1:迭代器
Iterator<String> it = languages.iterator();
while (it.hasNext()) {System.out.println(it.next());
}// 方式2:增强for
for (String lang : languages) {System.out.println(lang);
}


集合与数组转换

toArray()将集合转换为数组,可指定数组类型。

Collection<String> coll = Arrays.asList("Apple", "Banana");
Object[] array1 = coll.toArray(); // 转为Object数组
String[] array2 = coll.toArray(new String[0]); // 转为String数组
System.out.println(Arrays.toString(array2)); // 输出: [Apple, Banana]

实例:

public class A01_CollectionDemo1 {public static void main(String[] args) {
/*public boolean add(E e)             添加public void clear()                 清空public boolean remove(E e)          删除public boolean contains(Object obj) 判断是否包含public boolean isEmpty()            判断是否为空public int size()                   集合长度注意点:Collection是一个接口,我们不能直接创建他的对象。所以,现在我们学习他的方法时,只能创建他实现类的对象。实现类:ArrayList
*///目的:为了学习Collection接口里面的方法//自己在做一些练习的时候,还是按照之前的方式去创建对象。Collection<String> coll = new ArrayList<>();//1.添加元素//细节1:如果我们要往List系列集合中添加数据,那么方法永远返回true,因为List系列的是允许元素重复的。//细节2:如果我们要往Set系列集合中添加数据,如果当前要添加元素不存在,方法返回true,表示添加成功。//                                       如果当前要添加的元素已经存在,方法返回false,表示添加失败。//                                       因为Set系列的集合不允许重复。coll.add("aaa");coll.add("bbb");coll.add("ccc");System.out.println(coll);//2.清空//coll.clear();//3.删除//细节1:因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除。只能通过元素的对象进行删除。//细节2:方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false//如果要删除的元素不存在,就会删除失败。System.out.println(coll.remove("aaa"));System.out.println(coll);//4.判断元素是否包含//细节:底层是依赖equals方法进行判断是否存在的。//所以,如果集合中存储的是自定义对象,也想通过contains方法来判断是否包含,那么在javabean类中,一定要重写equals方法。boolean result1 = coll.contains("bbb");System.out.println(result1);//5.判断集合是否为空boolean result2 = coll.isEmpty();System.out.println(result2);//false//6.获取集合的长度coll.add("ddd");int size = coll.size();System.out.println(size);//3}
}

注意事项

  • 部分方法(如add())在不可变集合中会抛出UnsupportedOperationException
  • remove()依赖元素的equals()方法进行匹配
  • 不同实现类(如ArrayList vs HashSet)对相同方法可能有不同性能表现

通过灵活运用Collection接口的方法,可以高效处理各类集合操作需求。

相关文章:

  • C++与C有什么不同
  • 数据集-目标检测系列- 狮子 数据集 lion >> DataBall
  • Python实战:高效连接与操作Elasticsearch的完整指南
  • [灵感源于算法] 链表类问题技巧总结
  • Ubuntu 实现可视化组raid和升级raid
  • Git 介绍、安装以及基本操作
  • 【PhysUnits】17.7 readme.md更新
  • 仓库物资出入库管理系统源码+uniapp小程序
  • 大模型笔记_检索增强生成(RAG)
  • 在 Azure 机器学习中注册 MLflow 模型
  • 汉诺塔 (easy)
  • Spark提交流程
  • JAVA毕业设计227—基于SpringBoot+hadoop+spark+Vue的大数据房屋维修系统(源代码+数据库)
  • PHP:互联网时代的常青编程语言
  • C++ 中的 iostream 库:cin/cout 基本用法
  • 【JavaEE】-- HTTPS
  • windows电脑解决笔记本搜索不到wifi问题
  • 侃侃AI编程
  • javaee初阶-多线程
  • 电机专用32位MCU PY32MD310,QFN32封装,内置多功能栅极驱动器
  • 吉林门户网站建设/南宁百度推广排名优化
  • 福州专业做网站的公司有哪些/最近几天的新闻
  • 重庆cms建站模板/关键词优化平台有哪些
  • 提升网站权重/怎样做自己的网站
  • 腾讯云建设网站视频/汕头网站关键词推广
  • 郑州网站建设行情/网络推广工作室