Java中的集合类有哪些?如何分类的?

Java中的集合类有哪些?如何分类的?

1. Java集合类的分类

Java中的集合类主要分为两大类:集合(Collection)映射(Map)

1.1 集合(Collection)

集合是单个对象的集合,可以存储多个元素。集合又可以进一步分为以下几种:

  • 列表(List) :有序集合,可以包含重复的元素。常见的实现类有 ArrayListLinkedList 等。
  • 集合(Set) :不允许重复的集合。常见的实现类有 HashSetLinkedHashSetTreeSet 等。
  • 队列(Queue) :用于存储和检索元素的集合,通常按照先进先出(FIFO)的顺序。常见的实现类有 LinkedListPriorityQueue 等。

1.2 映射(Map)

映射是键值对的集合,每个键映射到一个值。常见的实现类有 HashMapTreeMapLinkedHashMap 等。

2. 实际场景与代码示例

2.1 列表(List)

假设我们要存储一个学生的课程列表,可以使用 ArrayList

csharp 复制代码
import java.util.ArrayList;
import java.util.List;
​
public class ListExample {
    public static void main(String[] args) {
        List<String> courses = new ArrayList<>();
        courses.add("Java");
        courses.add("Python");
        courses.add("C++");
​
        System.out.println("课程列表: " + courses);
        System.out.println("第二门课程: " + courses.get(1)); // 输出 Python
    }
}

2.2 集合(Set)

假设我们要存储一个班级的学生姓名,不允许重复,可以使用 HashSet

java 复制代码
import java.util.HashSet;
import java.util.Set;
​
public class SetExample {
    public static void main(String[] args) {
        Set<String> students = new HashSet<>();
        students.add("Alice");
        students.add("Bob");
        students.add("Alice"); // 重复的元素不会被添加
​
        System.out.println("学生集合: " + students);
    }
}

2.3 队列(Queue)

假设我们要模拟一个打印任务队列,可以使用 LinkedList

java 复制代码
import java.util.LinkedList;
import java.util.Queue;
​
public class QueueExample {
    public static void main(String[] args) {
        Queue<String> printQueue = new LinkedList<>();
        printQueue.add("Document1");
        printQueue.add("Document2");
​
        System.out.println("打印队列: " + printQueue);
        System.out.println("打印任务: " + printQueue.poll()); // 输出 Document1
        System.out.println("打印队列: " + printQueue);
    }
}

2.4 映射(Map)

假设我们要存储学生的成绩,可以使用 HashMap

java 复制代码
import java.util.HashMap;
import java.util.Map;
​
public class MapExample {
    public static void main(String[] args) {
        Map<String, Integer> scores = new HashMap<>();
        scores.put("Alice", 90);
        scores.put("Bob", 85);
​
        System.out.println("成绩表: " + scores);
        System.out.println("Alice的成绩: " + scores.get("Alice")); // 输出 90
    }
}

3. 总结

  • 列表(List) :有序,可以重复。
  • 集合(Set) :无序,不允许重复。
  • 队列(Queue) :先进先出。
  • 映射(Map) :键值对,键唯一。
相关推荐
我是华为OD~HR~栗栗呀40 分钟前
华为OD-Java面经-21届考研
java·c++·后端·python·华为od·华为·面试
考虑考虑1 小时前
流收集器
java·后端·java ee
野犬寒鸦2 小时前
从零起步学习MySQL || 第十章:深入了解B+树及B+树的性能优势(结合底层数据结构与数据库设计深度解析)
java·数据库·后端·mysql·1024程序员节
上进小菜猪2 小时前
智能信创新范式:浙江省人民医院的全栈国产化与智能数据底座实践
后端
没有bug.的程序员3 小时前
Spring 常见问题与调试技巧
java·后端·spring·动态代理·1024程序员节
黎燃4 小时前
构筑自主可控医疗生态-数智融合新引擎-医疗全栈信创跃迁
后端
R.lin4 小时前
OSS服务模块-基于数据库配置的Java OSS服务解决方案,支持MinIO、七牛云、阿里云和腾讯云
java·数据库·后端·mysql
R.lin5 小时前
使用 Undertow 替代 Tomcat
java·后端·tomcat
Mintopia5 小时前
🇨🇳 Next.js 在国内场景下的使用分析与实践指南
前端·后端·全栈
程序员三明治6 小时前
Spring AOP:注解配置与XML配置双实战
java·后端·spring·代理模式·aop·1024程序员节