当前位置:首页 > Java

java如何集合

2026-03-19 18:28:41Java

集合框架概述

Java集合框架(Java Collections Framework)是Java提供的用于存储和操作数据的一组接口和类,位于java.util包中。主要分为三类:List(有序集合)、Set(无序不重复集合)、Map(键值对集合)。

核心接口与实现类

List接口

  • ArrayList:基于动态数组实现,支持快速随机访问。
  • LinkedList:基于双向链表实现,适合频繁插入/删除操作。
  • Vector:线程安全的动态数组,性能较低。

Set接口

java如何集合

  • HashSet:基于哈希表实现,无序且不允许重复。
  • LinkedHashSet:维护插入顺序的哈希集合。
  • TreeSet:基于红黑树实现,元素按自然顺序或自定义排序。

Map接口

  • HashMap:基于哈希表的键值对存储,允许null键/值。
  • LinkedHashMap:维护插入顺序的哈希映射。
  • TreeMap:基于红黑树实现键的排序。

常用操作示例

List操作

java如何集合

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.remove("Python"); // 删除元素
String element = list.get(0); // 访问元素

Set操作

Set<Integer> set = new HashSet<>();
set.add(10);
set.add(20);
boolean contains = set.contains(10); // 检查存在性

Map操作

Map<String, Integer> map = new HashMap<>();
map.put("Key1", 100);
int value = map.get("Key1"); // 获取值
map.remove("Key1"); // 删除键值对

集合工具类

Collections类提供静态方法操作集合:

List<Integer> numbers = Arrays.asList(3, 1, 2);
Collections.sort(numbers); // 排序
Collections.reverse(numbers); // 反转

线程安全集合

  • ConcurrentHashMap:线程安全的哈希映射。
  • CopyOnWriteArrayList:写时复制的线程安全列表。

注意事项

  • 使用泛型明确集合类型,避免运行时类型转换错误。
  • 重写对象的equals()hashCode()方法以确保集合正确性。
  • 根据场景选择合适实现类(如高频查询用ArrayList,频繁增删用LinkedList)。

标签: java
分享给朋友:

相关文章

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…

如何导入java项目

如何导入java项目

导入Java项目的方法 使用IDE导入(如IntelliJ IDEA或Eclipse) 打开IDE后选择导入现有项目,导航至项目根目录(包含pom.xml或build.gradle的文件位置)。IDE…

vue实现java登录注册

vue实现java登录注册

实现 Vue 与 Java 后端的登录注册功能 前端 Vue 部分 安装必要的依赖(如 axios 用于 HTTP 请求): npm install axios 创建登录表单组件(Login.vue…

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…

如何查看java版本

如何查看java版本

查看Java版本的命令行方法 在终端或命令提示符中运行以下命令,可以快速查看已安装的Java版本: java -version 输出示例: java version "17.0.1" 20…

java如何创建线程

java如何创建线程

在Java中创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法: 继承Thread类 通过继承Thread类并重写run()方法,可以创建一个线程。启动线程时调…