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

相关推荐
Victor3569 分钟前
MySQL(140)如何解决外键约束冲突?
后端
Victor35610 分钟前
MySQL(139)如何处理MySQL字符编码问题?
后端
☆璇10 分钟前
【数据结构】排序
c语言·开发语言·数据结构·算法·排序算法
我要成为c嘎嘎大王10 分钟前
【C++】初识C++(1)
开发语言·c++
良木林14 分钟前
JavaScript书写基础和基本数据类型
开发语言·前端·javascript
梁同学与Android1 小时前
Android ---【内存优化】常见的内存泄露以及解决方案
android·java·内存泄漏
007php0071 小时前
服务器上PHP环境安装与更新版本和扩展(安装PHP、Nginx、Redis、Swoole和OPcache)
运维·服务器·后端·nginx·golang·测试用例·php
武子康2 小时前
Java-71 深入浅出 RPC Dubbo 上手 父工程配置编写 附详细POM与代码
java·分布式·程序人生·spring·微服务·rpc·dubbo
艾莉丝努力练剑3 小时前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表