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

相关推荐
Victor3561 小时前
Redis(28)Redis的持久化文件可以跨平台使用吗?
后端
Victor3561 小时前
Redis(29)如何手动触发Redis的RDB快照?
后端
望获linux2 小时前
【Linux基础知识系列】第一百一十篇 - 使用Nmap进行网络安全扫描
java·linux·开发语言·前端·数据库·信息可视化·php
雷达学弱狗5 小时前
链式法则解释上游梯度应用
开发语言·前端·javascript
最初的↘那颗心6 小时前
Java泛型深度解析:从基础语法到高级应用
java·面向对象·泛型
仙俊红6 小时前
Spring Boot `@Configuration` 与 `@Component` 笔记
java·spring boot·笔记
小清兔8 小时前
c#基础知识
开发语言·数据库·学习·unity·c#·游戏引擎·.net
快乐就是哈哈哈8 小时前
《一文带你搞懂ElasticSearch:从零到上手搜索引擎》
后端·elasticsearch
大鸡腿同学8 小时前
身弱:修炼之路
后端
bobz9659 小时前
cpu 调度 和 gpu 调度
后端