Java集合框架详解

发布时间:2025-01-15 | 作者:Admin | 分类:Java进阶
集合 List Map
← 返回首页

集合框架概述

Java集合框架是Java提供的用于存储和操作一组对象的数据结构。它包含了一系列接口和实现类,提供了各种不同的数据存储和检索方式。

集合框架体系结构

Java集合框架主要由两个根接口组成:

List接口及实现类

List是一个有序集合,允许重复元素。主要实现类包括ArrayList、LinkedList和Vector。

ArrayList

ArrayList是基于动态数组实现的,支持快速随机访问,但在中间插入或删除元素较慢。

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    public static void main(String[] args) {
        // 创建ArrayList
        List list = new ArrayList<>();

        // 添加元素
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");

        // 访问元素
        System.out.println(list.get(0)); // 输出: Apple

        // 修改元素
        list.set(1, "Grape");

        // 遍历元素
        for(String fruit : list) {
            System.out.println(fruit);
        }

        // 删除元素
        list.remove("Orange");
        System.out.println("列表大小: " + list.size());
    }
}
            

LinkedList

LinkedList是基于双向链表实现的,在插入和删除元素时效率较高,但随机访问较慢。

import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
    public static void main(String[] args) {
        // 创建LinkedList
        List linkedList = new LinkedList<>();

        // 添加元素
        linkedList.add("First");
        linkedList.add("Second");
        linkedList.add("Third");

        // 在开头添加元素
        ((LinkedList) linkedList).addFirst("New First");

        // 在末尾添加元素
        ((LinkedList) linkedList).addLast("New Last");

        // 获取第一个和最后一个元素
        System.out.println("第一个元素: " + ((LinkedList) linkedList).getFirst());
        System.out.println("最后一个元素: " + ((LinkedList) linkedList).getLast());
    }
}
            

Set接口及实现类

Set是一个不包含重复元素的集合。主要实现类包括HashSet、LinkedHashSet和TreeSet。

HashSet

HashSet基于哈希表实现,不保证元素的顺序,允许null元素。

import java.util.HashSet;
import java.util.Set;

public class HashSetExample {
    public static void main(String[] args) {
        // 创建HashSet
        Set set = new HashSet<>();

        // 添加元素
        set.add("Apple");
        set.add("Banana");
        set.add("Orange");
        set.add("Apple"); // 重复元素不会被添加

        // 输出集合大小
        System.out.println("集合大小: " + set.size()); // 输出: 3

        // 检查是否包含元素
        if(set.contains("Banana")) {
            System.out.println("包含Banana");
        }

        // 删除元素
        set.remove("Orange");

        // 遍历元素
        for(String fruit : set) {
            System.out.println(fruit);
        }
    }
}
            

Map接口及实现类

Map存储键值对,每个键最多映射到一个值。主要实现类包括HashMap、LinkedHashMap和TreeMap。

HashMap

HashMap基于哈希表实现,允许null键和null值,不保证映射的顺序。

import java.util.HashMap;
import java.util.Map;

public class HashMapExample {
    public static void main(String[] args) {
        // 创建HashMap
        Map map = new HashMap<>();

        // 添加键值对
        map.put("Apple", 3);
        map.put("Banana", 5);
        map.put("Orange", 2);

        // 获取值
        System.out.println("Apple的数量: " + map.get("Apple"));

        // 修改值
        map.put("Apple", 10);

        // 检查是否包含键或值
        if(map.containsKey("Banana")) {
            System.out.println("包含键Banana");
        }

        // 获取所有键
        System.out.println("所有键: " + map.keySet());

        // 获取所有值
        System.out.println("所有值: " + map.values());

        // 遍历键值对
        for(Map.Entry entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}
            
← 返回首页