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

相关推荐
麻瓜生活睁不开眼2 小时前
Android16修改全局桌面视图边框四直角显示为弧边圆角
android·java·深度学习
dear_bi_MyOnly3 小时前
【MyBatis 操作数据库】
java·数据库·学习·mybatis·学习方法
Wang's Blog3 小时前
Go-Zero 项目开发43:基于 Filebeat 收集各个服务的日志信息
开发语言·golang·go-zero·filebeat
2601_953720823 小时前
【计算机毕业设计】基于Spring Boot的心理健康咨询与评测系统的设计与实现
java·spring boot·后端
丈剑走天涯4 小时前
JDK 17 正式特性
java·开发语言
东方小月4 小时前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端
秋田君4 小时前
QT_QFontDialog类字体对话框
开发语言·qt
圣光SG4 小时前
Java操作题练习(七)
java·开发语言·算法
都叫我大帅哥5 小时前
“让AI修就行”?我劝你收回这句话——来自一位Java博主的硬核反常识
后端