Java中List、Set、Map三种集合之间的区别

Java中List、Set、Map三种集合之间的区别

      • [1. List](#1. List)
      • [2. Set](#2. Set)
      • [3. Map](#3. Map)

在Java中,List、Set和Map是三种常见的集合类型,它们之间也有一些重要的区别:

1. List

  • List是有序集合,可以存储重复元素。
  • List的实现类常见有ArrayListLinkedListVector
  • 可以通过索引访问List中的元素,可以根据索引添加、删除和修改元素。
  • 常用的操作包括get(index)add(element)remove(index)等。

代码如下:

java 复制代码
import java.util.ArrayList;
import java.util.List;

public class ListExample {
   public static void main(String[] args) {
       // 创建一个ArrayList
       List<String> list = new ArrayList<>();

       // 添加元素
       list.add("1");
       list.add("1");
       list.add("2");

       // 遍历列表并打印元素
       for (String num: list) {
           System.out.println(num);
       }
   }
}

2. Set

  • Set是无序集合,不允许存储重复元素
  • Set的实现类常见有HashSetTreeSetLinkedHashSet
  • 可以用来判断元素是否存在、添加元素、删除元素等。
  • 常用的操作包括add(element)contains(element)remove(element)等。

代码如下:

java 复制代码
import java.util.HashSet;
import java.util.Set;

public class SetExample {
   public static void main(String[] args) {
       // 创建一个HashSet
       Set<String> set = new HashSet<>();

       // 添加元素
       set.add("1");
       set.add("1");
       set.add("2");

       // 遍历集合并打印元素
       for (String num: set) {
           System.out.println(num);
       }
   }
}

3. Map

  • Map是键值对的集合,每个键对应一个值,键不允许重复值可以重复
  • Map的实现类常见有HashMapTreeMapLinkedHashMap
  • 可以通过键来获取对应的值,也可以添加、删除键值对。
  • 常用的操作包括put(key, value)get(key)remove(key)等。

代码如下:

java 复制代码
import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        // 创建一个HashMap
        Map<Integer, String> map = new HashMap<>();

        // 添加键值对
        map.put(1, "1");
        map.put(2, "1");
        map.put(3, "2");

        // 遍历Map并打印键值对
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }
    }
}

总结一下:

  • List是有序集合,可以存储重复元素,通过索引访问
  • Set是无序集合,不允许存储重复元素,用于判断元素是否存在
  • Map是键值对的集合,键不允许重复,通过键获取值

|----------------------------------------------------------------------------------------------|----------------------|----------------------------------------------------------------------------------------|
| 上一篇 面试官:你用过Collections工具类吗? | 记得点赞收藏哦!!! | 下一篇 Java------File类详解 |

相关推荐
金牌归来发现妻女流落街头1 分钟前
【从SpringBoot到SpringCloud】
java·spring boot·spring cloud
毅炼1 分钟前
Java 基础常见问题总结(4)
java·后端
无小道3 分钟前
Qt——事件简单介绍
开发语言·前端·qt
devmoon8 分钟前
在 Paseo 测试网上获取 Coretime:On-demand 与 Bulk 的完整实操指南
开发语言·web3·区块链·测试用例·智能合约·solidity
GR23423413 分钟前
2025年影视仓TV+手机官方版 内置地址源支持高清直播
java·智能手机·软件
想用offer打牌23 分钟前
MCP (Model Context Protocol) 技术理解 - 第一篇
后端·aigc·mcp
kylezhao201925 分钟前
C# 中的 SOLID 五大设计原则
开发语言·c#
千寻girling28 分钟前
Koa.js 教程 | 一份不可多得的 Node.js 的 Web 框架 Koa.js 教程
前端·后端·面试
程序员清风36 分钟前
北京回长沙了,简单谈谈感受!
java·后端·面试
何中应1 小时前
请求头设置没有生效
java·后端