java-初识List

List:

List 是一个接口,属于 java.util 包,用于表示有序的元素集合。List 允许存储重复元素,并且可以通过索引访问元素。它是 Java 集合框架(Java Collections Framework)的一部分

特点:

  • 有序集合:List 中的元素按照插入顺序排列,可以通过索引(从 0 开始)访问元素。
  • 允许重复元素:List 可以包含多个相同的元素。
  • 允许 null 元素:List 可以包含 null 值。
  • 动态大小:List 的大小可以动态调整,不像数组那样固定。

常用实现类:

  • ArrayList:基于动态数组实现,支持快速随机访问,但在中间插入或删除元素时性能较差。
  • LinkedList:基于双向链表实现,适合频繁的插入和删除操作,但随机访问性能较差。
  • Vector:与 ArrayList 类似,但是线程安全的(同步的),性能较低。
  • Stack:继承自 Vector,实现了栈数据结构(后进先出)。

常用方法:

  • add(E e):将元素添加到列表末尾。
  • add(int index, E element):在指定位置插入元素。
  • get(int index):获取指定位置的元素。
  • remove(int index):移除指定位置的元素。
  • remove(Object o):移除第一个匹配的元素。
  • set(int index, E element):替换指定位置的元素。
  • size():返回列表中的元素数量。
  • isEmpty():判断列表是否为空。
  • contains(Object o):判断列表是否包含指定元素。
  • indexOf(Object o):返回指定元素第一次出现的索引。
  • clear():清空列表中的所有元素。
  • iterator():返回一个迭代器,用于遍历列表。

示例代码

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

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

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

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

        // 修改元素
        list.set(1, "Blueberry"); // 将 "Banana" 替换为 "Blueberry"

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

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

        // 判断是否包含某个元素
        System.out.println("Contains Apple? " + list.contains("Apple")); // 输出: true

        // 获取列表大小
        System.out.println("List size: " + list.size()); // 输出: 2
    }
}

总结

List 是 Java 中非常常用的集合类型,适用于需要有序存储和访问元素的场景。根据具体需求,可以选择 ArrayList、LinkedList 或其他实现类。List 提供了丰富的操作方法,能够满足大多数集合操作的需求

原理传送门

list源码梳理

相关推荐
途中刂11 分钟前
第一章 初识Java
java·开发语言·笔记·学习·intellij-idea
苹果酱056720 分钟前
Mac下Robotframework + Python3环境搭建
java·vue.js·spring boot·mysql·课程设计
有梦想的攻城狮35 分钟前
spring中的@Qualifier注解详解
java·后端·spring·注解·qualifier
咔_38 分钟前
Java集合框架全面解析
java·开发语言
陳長生.1 小时前
JAVA EE_网络原理_网络层
java·服务器·开发语言·网络·java-ee
程序员阿鹏1 小时前
Spring Boot项目(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot前后端分离)
java·前端·vue.js·spring boot·后端·spring·maven
小李小李晴空万里1 小时前
使用countDownLatch导致的线程安全问题,线程不安全的List-ArrayList,线程安全的List-CopyOnWriteArrayList
java·开发语言
CodeBlossom1 小时前
java加强 -Collection集合
java·开发语言
尸僵打怪兽1 小时前
软考错题集
java·python·计算机网络·操作系统·c·软考·计算机组成原理
zz0723201 小时前
第二十一周:项目开发中遇到的相关问题(二)
java·spring·restful