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 里面添加当前字符串。


相关推荐
SEO_juper2 分钟前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
南归北隐4 分钟前
Spring AI Alibaba Graph框架实现MCP数据库查询实战
java·后端·spring ai·mcp·spring ai mcp
曲径海盗9 分钟前
【Python 学习第 37 天】for 循环
python·学习笔记·编程入门
古法老登瞎折腾17 分钟前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
ai大模型-探索者27 分钟前
Function Call与MCP(区别、联系与实战)
java·服务器·网络
心静财富之门31 分钟前
Python 数据共享四种方案完整实例(同进程 / JSON / Redis / HTTP)
数据库·python·oracle
略略略咯咯32 分钟前
啊啊啊啊啊
java·服务器·数据库
SL_staff1 小时前
运维救火实战:钉钉API变更致薪资计算中断,如何用可视化逻辑引擎5分钟热修复
java·开源·全栈
王仔小奶1 小时前
慢SQL治理与性能调优:DBA如何用Shell/Python提升运维效率?
python·sql·dba
用户0332126663671 小时前
使用 Python 快速在 PowerPoint 中生成表格【教程】
python