一、前言

在 Java 开发中,数组长度固定、使用不便,集合框架是用来存储、处理一组对象的核心工具。集合相比于数组,长度可变、功能丰富、支持泛型,是日常开发、考试、面试的重中之重。本文主要讲解 Java 三大核心集合:ListSetMap

二、集合体系概述

Java 集合主要分为两大类:

  1. 单列集合(Collection):一次存一个对象
    • List:有序、可重复
    • Set:无序、不可重复
  2. 双列集合(Map):一次存一对对象(键值对 key-value)

三、List 接口(有序、可重复)

特点

  • 元素存取有序
  • 允许重复元素
  • 有索引,可以通过下标取值

常用实现类

  • ArrayList:底层数组,查询快、增删慢
  • LinkedList:底层链表,增删快、查询慢

代码示例

java

运行

import java.util.ArrayList;
public class ListDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("Java");
        list.add("Python");
        list.add("Java"); // 允许重复

        System.out.println(list.get(0)); // 索引取值
        System.out.println(list);
    }
}

四、Set 接口(无序、不可重复)

特点

  • 无序(存取顺序不一致)
  • 元素不可重复,自动去重
  • 无索引

常用实现类

  • HashSet:底层哈希表,查询效率极高

代码示例

java

运行

import java.util.HashSet;
public class SetDemo {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        set.add("苹果");
        set.add("香蕉");
        set.add("苹果"); // 重复元素自动失效

        System.out.println(set);
    }
}

五、Map 接口(键值对存储)

特点

  • 双列集合:key (键) + value (值)
  • key 不可重复,value 可以重复
  • 常用做数据映射、字典、缓存

常用实现类

  • HashMap:无序、高效、日常最常用

代码示例

java

运行

import java.util.HashMap;
public class MapDemo {
    public static void main(String[] args) {
        HashMap<String,Integer> map = new HashMap<>();
        map.put("张三",20);
        map.put("李四",22);

        System.out.println(map.get("张三")); // 根据key取值
        System.out.println(map);
    }
}

六、三大集合核心区别总结

  1. List:有序、可重复、有索引(适合存有序数据)
  2. Set:无序、不可重复、无索引(适合去重)
  3. Map:键值对、key 唯一(适合映射关系数据)

七、总结

集合框架替代了数组的短板,是 Java 存储数据的核心手段。开发中:

  • 普通有序数据用 ArrayList
  • 去重数据用 HashSet
  • 映射关系数据用 HashMap

更多推荐