Java 常见集合方法

文章目录

    • 最常用的记忆表
    • [一、List 常见方法](#一、List 常见方法)
      • [1. 添加元素](#1. 添加元素)
      • [2. 根据下标获取元素](#2. 根据下标获取元素)
      • [3. 修改元素](#3. 修改元素)
      • [4. 删除元素](#4. 删除元素)
      • [5. 获取长度](#5. 获取长度)
      • [6. 判断是否包含某个元素](#6. 判断是否包含某个元素)
    • [二、Set 常见方法](#二、Set 常见方法)
      • [1. 添加元素](#1. 添加元素)
      • [2. 判断是否存在](#2. 判断是否存在)
      • [3. 删除元素](#3. 删除元素)
      • [4. 获取数量](#4. 获取数量)
    • [三、Map 常见方法](#三、Map 常见方法)
      • [1. 添加键值对](#1. 添加键值对)
      • [2. 根据 key 获取 value](#2. 根据 key 获取 value)
      • [3. 判断是否包含某个 key](#3. 判断是否包含某个 key)
      • [4. 获取默认值](#4. 获取默认值)
      • [5. 删除键值对](#5. 删除键值对)
      • [6. 遍历所有 key](#6. 遍历所有 key)
      • [7. 遍历所有 value](#7. 遍历所有 value)
      • [8. 遍历 key 和 value](#8. 遍历 key 和 value)
    • 四、结合你这道题理解

Java 里常用集合主要有三类:

java 复制代码
List        // 有序、可重复
Set         // 无序、不重复
Map         // 键值对

1.用 Set 集合,主要是为了两个目的:快速判断某个数字存不存在 ,以及自动去重

2.可变数组是LIst类


最常用的记忆表

集合 常用方法 作用
List add() 添加元素
List get() 根据下标取元素
List set() 修改元素
List remove() 删除元素
List size() 获取长度
Set add() 添加元素,自动去重
Set contains() 判断是否存在
Map put() 添加/修改键值对
Map get() 根据 key 取 value
Map containsKey() 判断 key 是否存在
Map getOrDefault() 获取值,没有就用默认值
Map keySet() 获取所有 key
Map entrySet() 获取所有 key-value

简单记:

java 复制代码
List:按顺序存数据
Set:去重存数据
Map:按 key 找 value

一、List 常见方法

List 可以理解成:可变数组

常用实现类:

java 复制代码
ArrayList
LinkedList

1. 添加元素

java 复制代码
list.add("eat");

作用:往列表末尾添加一个元素。

java 复制代码
List<String> list = new ArrayList<>();

list.add("eat");
list.add("tea");

System.out.println(list);

输出:

java 复制代码
[eat, tea]

2. 根据下标获取元素

java 复制代码
list.get(0);

示例:

java 复制代码
System.out.println(list.get(0));

输出:

java 复制代码
eat

注意:List 的下标从 0 开始。


3. 修改元素

java 复制代码
list.set(0, "ate");

意思是:把下标 0 的元素改成 "ate"

java 复制代码
list.set(0, "ate");

System.out.println(list);

输出:

java 复制代码
[ate, tea]

4. 删除元素

java 复制代码
list.remove(0);

或者:

java 复制代码
list.remove("tea");

示例:

java 复制代码
list.remove("tea");
System.out.println(list);

5. 获取长度

java 复制代码
list.size();

示例:

java 复制代码
System.out.println(list.size());

6. 判断是否包含某个元素

java 复制代码
list.contains("eat");

返回值是 boolean

java 复制代码
true
false

二、Set 常见方法

Set 可以理解成:不允许重复的集合

常用实现类:

java 复制代码
HashSet
TreeSet
LinkedHashSet

1. 添加元素

java 复制代码
set.add("eat");

示例:

java 复制代码
Set<String> set = new HashSet<>();

set.add("eat");
set.add("eat");
set.add("tea");

System.out.println(set);

输出可能是:

java 复制代码
[eat, tea]

因为 Set 会自动去重。


2. 判断是否存在

java 复制代码
set.contains("eat");

这个方法很常用,尤其是题目里要判断某个元素有没有出现过。


3. 删除元素

java 复制代码
set.remove("eat");

4. 获取数量

java 复制代码
set.size();

三、Map 常见方法

Map 可以理解成:通过 key 找 value

比如:

java 复制代码
"aet" -> ["eat", "tea", "ate"]

常用实现类:

java 复制代码
HashMap
LinkedHashMap
TreeMap

1. 添加键值对

java 复制代码
map.put(key, value);

示例:

java 复制代码
Map<String, Integer> map = new HashMap<>();

map.put("apple", 3);
map.put("banana", 2);

意思是:

java 复制代码
apple -> 3
banana -> 2

2. 根据 key 获取 value

java 复制代码
map.get("apple");

示例:

java 复制代码
System.out.println(map.get("apple"));

输出:

java 复制代码
3

3. 判断是否包含某个 key

java 复制代码
map.containsKey("apple");

这个在算法题里非常常用。

比如:

java 复制代码
if (!map.containsKey(key)) {
    map.put(key, new ArrayList<>());
}

意思是:

如果 map 里还没有这个 key,就先创建一个空列表。


4. 获取默认值

java 复制代码
map.getOrDefault(key, 默认值);

常用于统计次数。

java 复制代码
map.put("apple", map.getOrDefault("apple", 0) + 1);

意思是:

如果 apple 之前出现过,就次数 +1;

如果 apple 没出现过,就从 0 开始 +1。


5. 删除键值对

java 复制代码
map.remove("apple");

6. 遍历所有 key

java 复制代码
for (String key : map.keySet()) {
    System.out.println(key);
}

7. 遍历所有 value

java 复制代码
for (Integer value : map.values()) {
    System.out.println(value);
}

8. 遍历 key 和 value

java 复制代码
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " " + entry.getValue());
}

四、结合你这道题理解

你这道题里有:

java 复制代码
Map<String, List<String>> map = new HashMap<>();

意思是:

java 复制代码
key 是 String
value 是 List<String>

比如最后可能长这样:

java 复制代码
{
  "aet" -> ["eat", "tea", "ate"],
  "ant" -> ["tan", "nat"],
  "abt" -> ["bat"]
}

所以:

java 复制代码
map.get(key).add(str);

里面用到了两个集合方法:

java 复制代码
map.get(key)

先从 Map 里根据 key 取出对应的 List

java 复制代码
.add(str)

再往这个 List 里面添加当前字符串。


相关推荐
从此以后自律1 小时前
ConcurrentHashMap 超详细详解
java
web守墓人1 小时前
【python】uv解决依赖安装缓慢的问题
开发语言·python·uv
asdzx671 小时前
使用 Python 精准操控 Word 字体:获取与替换方案
python·c#·word
胡耀超1 小时前
固件逆向:从一坨二进制,到一个可以被解释的系统
python·逆向工程·硬件安全·二进制分析·电子数据取证·嵌入式安全·固件逆向
兰令水1 小时前
hot100【acm版】【2026.7.14打卡-java版本】
java·数据结构·算法·leetcode·面试
倒流时光三十年2 小时前
MyBatis @MapKey 注解详解
windows·mybatis
thefool1122662 小时前
Java 数组是引用类型
java
生活、追梦者2 小时前
【Windows】 CMD 黑窗口命令大全
windows·命令行·cmd·运维技巧
2501_941982053 小时前
企业微信二次开发:如何用 Python 搭建通用的 Webhook 实时消息接收
开发语言·python·企业微信