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

java.util包之java.util.Collection介绍

java.util.Collection 接口介绍

java.util.Collection 是 Java 集合框架(Java Collections Framework, JCF)的根接口,定义了所有集合类(如 ListSetQueue)的基本操作。它代表一组对象(元素),并提供了一系列方法来操作这些元素。


1. Collection 的主要特点

  • 存储一组对象(可以是任意类型,但通常使用泛型 <E> 指定元素类型)。
  • 不直接实现,而是由子接口(如 ListSetQueue)和具体类(如 ArrayListHashSetLinkedList)实现。
  • 允许重复元素(但 Set 子接口不允许)。
  • 可以包含 null 元素(但某些实现类如 TreeSet 不允许)。
  • 不保证顺序List 有序,Set 无序,Queue 按特定规则排序)。

2. Collection 的子接口

子接口特点主要实现类
List有序、可重复ArrayList, LinkedList, Vector
Set无序、不可重复HashSet, LinkedHashSet, TreeSet
Queue队列(FIFO)或优先队列LinkedList, PriorityQueue, ArrayDeque
DequeQueue 的子接口)双端队列ArrayDeque, LinkedList

3. Collection 的常用方法

(1) 基本操作

方法说明
boolean add(E e)添加元素(成功返回 true,失败返回 false
boolean remove(Object o)删除元素(成功返回 true,否则 false
boolean contains(Object o)检查是否包含某个元素
int size()返回元素个数
boolean isEmpty()判断集合是否为空
void clear()清空集合

(2) 批量操作

方法说明
boolean addAll(Collection<? extends E> c)添加另一个集合的所有元素(并集)
boolean removeAll(Collection<?> c)删除另一个集合的所有元素(差集)
boolean retainAll(Collection<?> c)仅保留另一个集合中也存在的元素(交集)
boolean containsAll(Collection<?> c)检查是否包含另一个集合的所有元素

(3) 遍历操作

方法说明
Iterator<E> iterator()返回迭代器,用于遍历集合
Object[] toArray()将集合转为数组
<T> T[] toArray(T[] a)将集合转为指定类型的数组

4. Collection 的使用示例

(1) 基本操作示例

Collection<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");

System.out.println(names.contains("Bob"));  // true
System.out.println(names.size());          // 3
names.remove("Alice");
System.out.println(names);                 // [Bob, Charlie]

(2) 遍历集合

// 方式1:for-each 循环
for (String name : names) {
    System.out.println(name);
}

// 方式2:迭代器 Iterator
Iterator<String> it = names.iterator();
while (it.hasNext()) {
    System.out.println(it.next());
}

// 方式3:Java 8+ Stream API
names.stream().forEach(System.out::println);

(3) 集合运算(并集、交集、差集)

Collection<String> set1 = new HashSet<>(Arrays.asList("A", "B", "C"));
Collection<String> set2 = new HashSet<>(Arrays.asList("B", "C", "D"));

set1.addAll(set2);      // 并集: A, B, C, D
set1.retainAll(set2);   // 交集: B, C
set1.removeAll(set2);   // 差集: A

5. 注意事项

  1. Collection 不是线程安全的,多线程环境下应使用:
    • Collections.synchronizedCollection() 包装
    • CopyOnWriteArrayList(适用于读多写少的场景)
    • ConcurrentHashMapkeySet()ConcurrentLinkedQueue
  2. Collection 不能存储基本类型(如 intdouble),必须使用包装类(如 IntegerDouble)。
  3. Arrays.asList() 返回的是固定大小的 List,不能 add()remove()

6. 总结

  • Collection 是 Java 集合框架的根接口,定义了基本的集合操作。
  • 主要子接口List(有序可重复)、Set(无序不重复)、Queue(队列)。
  • 常用实现类ArrayListHashSetLinkedListPriorityQueue
  • 核心方法add()remove()contains()size()iterator()
  • 集合运算addAll()(并集)、retainAll()(交集)、removeAll()(差集)。
http://www.dtcms.com/a/99283.html

相关文章:

  • 并发编程之最小化共享
  • 21_js正则_表单验证
  • Java基于SpringBoot的网络云端日记本系统,附源码+文档说明
  • 若依——基于AI+若依框架的实战项目(实战篇(上))
  • SourceMap原理
  • 打破循环依赖的三大法宝:Spring Boot实战解析
  • 基于三维数字图像相关(DIC)全场应变测量技术的基础设施结构健康监测与安全评估方法研究
  • Msys2安装编译Redis
  • LearnOpenGL-笔记-其六
  • 数据分析概述
  • tauri配置全局变量
  • neo4j中导入csv格式的三元组数据
  • 访问者模式_行为型_GOF23
  • 人工智能入门(2)
  • 心理咨询法律咨询预约咨询微信小程序系统源码独立部署
  • Python函数中的*args与**kwargs详解:灵活处理可变参数
  • LabVIEW 燃气轮机气路故障诊断
  • 算法中常见的求和问题,数学公式
  • 通俗版解释:SecureLink 和 Xshell 的区别与联系
  • 管理系统-接口信息
  • 烽火MR622-KK融合机_海思MV300芯片_1+8G_强刷卡刷固件包
  • 计算机网络 用deepseek帮助整理的复习资料(一)
  • 工程项目管理软件赋能制造工程高效变革
  • VRRP虚拟路由器冗余协议
  • 网络探索之旅:网络原理(第二弹)
  • powershell7.5.0不支持conda的问题
  • 2.pycharm部署Ai - 编程好助手
  • Day17 -实例:利用不同语言不同框架的特征 进行识别
  • Anaconda安装-Ubuntu-Linux
  • 【数据结构】树与森林