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类详解 |

相关推荐
网络工程小王10 分钟前
【LCEL 链式调用详解】调用篇-2
java·服务器·前端·数据库·人工智能
swipe15 分钟前
别把语音 Agent 当成“接两个 API”——用 NestJS 搭一套 ASR + LLM + 流式 TTS 的实时语音助手
前端·后端·llm
skilllite作者25 分钟前
SkillLite 原生系统级沙箱功能代码导览
人工智能·chrome·后端·架构·rust
GISer_Jing37 分钟前
AI Agent中游产业链全景拆解:智能体开发的核心生态与技术版图
前端·人工智能·后端
Zzzzmo_37 分钟前
【JavaEE】文件操作和IO
java·java-ee·io·文件操作·file·流对象
NE_STOP1 小时前
Redis-持久化之RDB
java
苍煜1 小时前
SpringBoot AOP切面编程精讲:实现方式、Spring区别及与自定义注解生产实战
java·spring boot·spring
胡小禾1 小时前
企业内部文件处理方案
java
无限进步_2 小时前
二叉搜索树完全解析:从概念到实现与应用场景
c语言·开发语言·数据结构·c++·算法·github·visual studio