当前位置: 首页 > article >正文

Java 集合框架

一、引言

在 Java 编程中,集合是一种非常重要的数据结构,它可以用来存储和管理一组对象。Java 集合框架提供了一套丰富的接口和类,用于处理不同类型的集合,如列表、集合、映射等。通过使用集合框架,开发者可以更高效地处理数据,提高代码的可维护性和可扩展性。

二、Java 集合框架概述

Java 集合框架主要由两个接口派生而来:CollectionMapCollection 接口是所有集合类的根接口,它定义了集合的基本操作,如添加、删除、遍历等。Map 接口则用于存储键值对,每个键对应一个值。

2.1 集合框架的层次结构

Java 集合框架的主要层次结构如下:

  • Collection 接口
    • List 接口:有序集合,允许重复元素,常见的实现类有 ArrayListLinkedList 等。
    • Set 接口:无序集合,不允许重复元素,常见的实现类有 HashSetTreeSet 等。
    • Queue 接口:队列,遵循先进先出(FIFO)原则,常见的实现类有 LinkedListPriorityQueue 等。
  • Map 接口:存储键值对,键是唯一的,常见的实现类有 HashMapTreeMap 等。

三、List 接口及其实现类

3.1 List 接口概述

List 接口是 Collection 接口的子接口,它表示一个有序的集合,允许存储重复的元素。List 接口提供了根据索引访问元素、插入元素、删除元素等操作。

3.2 ArrayList

ArrayListList 接口的一个动态数组实现,它可以自动调整大小以容纳更多的元素。ArrayList 支持随机访问,即可以通过索引快速访问元素,但在插入和删除元素时效率较低。

3.2.1 ArrayList 的基本操作
import java.util.ArrayList;
import java.util.List;

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

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

        // 访问元素
        System.out.println("第一个元素是:" + list.get(0));

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

        // 删除元素
        list.remove(2);

        // 遍历元素
        for (String fruit : list) {
   
            System.out.println(fruit);
        }
    }
}
3.2.2 ArrayList 的优缺点
  • 优点:支持随机访问,访问元素的时间复杂度为 O(1);可以自动调整大小。
  • 缺点:插入和删除元素的效率较低,时间复杂度为 O(n)。

3.3 LinkedList

LinkedListList 接口的一个链表实现,它使用双向链表来存储元素。LinkedList 在插入和删除元素时效率较高,但随机访问元素的效率较低。

3.3.1 LinkedList 的基本操作
import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
   
    public static void main(String[] args) {
   
        // 创建一个 LinkedList 对象
        List<String> list = new LinkedList<>();

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

        // 在指定位置插入元素
        list.add(1, "Grape");

        // 删除元素
        list.remove("Banana");

        // 遍历元素
        for (String fruit : list) {
   
            System

http://www.kler.cn/a/592556.html

相关文章:

  • linux 内核 定时器(timer)
  • AI 是什么?核心概念与发展历程(人工智能的发展、基本概念、机器学习 vs 深度学习)
  • PyCharm 5的Python IDE的功能(附工具下载)
  • sql小记,20250319
  • tab页面切换
  • ansible速查手册
  • defineAsyncComponent和一般的import有什么区别
  • AI大模型在物联网行业的应用场景深度解析
  • 嵌入式面经-C语言:智能指针,`#define` 和 `const`,`typedef`,头文件中定义静态变量
  • 算法——广度优先搜索——跨步迷宫
  • List 和 Set的核心区别
  • Docker搭建MySQL主从服务器
  • Windows 图形显示驱动开发-WDDM 3.0功能- 硬件翻转队列(五)
  • 【Java进阶学习 第九篇】常用API(Array、冒泡选择排序、二分查找、正则表达式)
  • SpringData Elasticsearch:索引管理与全文检索
  • c++基础知识--返回值优化
  • Java Web应用程序实现用户登录、学生信息管理和验证码验证以及页面跳转等基本功能(IDEA)含(Ajax、JSTL)
  • 如何用AI轻松实现PPT自动生成,让工作更高效
  • IntelliJ IDEA 中 Git 高频问题与操作详解|新手避坑指南
  • 【css酷炫效果】纯CSS实现照片堆叠效果