Java List类

欢迎来到Cefler的博客😁

🕌博客主页:折纸花满衣

🏠个人专栏:Java


目录

  • 👉🏻List
    • [1. 接口与实现](#1. 接口与实现)
    • [2. 特性](#2. 特性)
    • [3. 常用方法](#3. 常用方法)
    • [4. 示例代码](#4. 示例代码)
    • [5. 遍历](#5. 遍历)
    • [6. 线程安全](#6. 线程安全)

👉🏻List

Java的 List 类是 Java Collections Framework 中的一部分,主要用于存储有序的元素集合。List 接口提供了一种顺序存储元素的方式,可以通过索引来访问和修改元素。下面是一些 List 的基本概念和特点:

1. 接口与实现

  • List 是一个接口,主要有两个常用的实现类:
    • ArrayList:基于动态数组实现,支持随机访问,适合读取频繁的场景。
    • LinkedList:基于链表实现,适合频繁插入和删除操作的场景。

2. 特性

  • 有序性 :List 中的元素是按插入顺序排列的,元素可以重复。
  • 可变性 :List 是可变的,可以随时添加、删除和更新元素。
  • 动态大小 :与数组不同,List 的大小是动态的,可以根据需要扩展。

3. 常用方法

  • add(E e):将指定元素添加到列表的末尾。
  • add(int index, E element):在指定位置插入元素。
  • remove(int index):移除指定位置的元素。
  • get(int index):获取指定位置的元素。
  • set(int index, E element):更新指定位置的元素。
  • size():返回列表中的元素数量。
  • isEmpty():判断列表是否为空。
  • contains(Object o):检查列表是否包含指定元素。

4. 示例代码

以下是一个简单的示例,展示了如何使用 ArrayList:

java 复制代码
import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        
        // 添加元素
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
        
        // 访问元素
        System.out.println(fruits.get(1)); // 输出: Banana
        
        // 修改元素
        fruits.set(1, "Blueberry");
        
        // 删除元素
        fruits.remove("Apple");
        
        // 打印列表
        System.out.println(fruits); // 输出: [Blueberry, Cherry]
    }
}

5. 遍历

  • 可以使用增强的 for 循环或迭代器来遍历 List。
java 复制代码
for (String fruit : fruits) {
    System.out.println(fruit);
}

6. 线程安全

  • List 接口的实现类如 ArrayList 和 LinkedList 默认不是线程安全的。如果在多线程环境中使用,需要考虑同步机制,例如使用 Collections.synchronizedList()。

如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长

相关推荐
星夜离尘563 分钟前
MATLAB 工程实验:不等间隔流量积分,先把缺口与覆盖率说清楚
开发语言·matlab·时间戳·数据质量·数值积分
_Evan_Yao4 分钟前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
Ai-_Man26 分钟前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节
梓豪csd29 分钟前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
秋饼31 分钟前
Spring AI 2.1 Message Parts 深度实战:推理签名回放与跨轮记忆持久化的源码级落地
java·ai·技术分享·后端开发
学逆向的1 小时前
C 枚举变量
c语言·开发语言·网络安全
Sakura_j_h_1 小时前
Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
开发语言·字符编码·windows·python·定时任务
thefool1122661 小时前
TCP 1
java·1024程序员节
金銀銅鐵4 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手4 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务