Java集合——list

ops/2024/11/15 6:07:22/

在Java中,List 是一个继承自 Collection 接口的子接口,表示一个有序的集合,允许重复元素。List 接口定义了一组方法来处理列表中的元素,并且有多个具体实现类,如 ArrayListLinkedListVector

1.主要方法

  • add(E e):将指定的元素 e 添加到列表的末尾。
  • add(int index, E element):在指定位置 index 插入元素 element
  • get(int index):返回指定位置 index 的元素。
  • set(int index, E element):用指定的元素 element 替换指定位置 index 的元素。
  • remove(int index):移除指定位置 index 的元素。
  • indexOf(Object o):返回指定元素 o 在列表中第一次出现的索引;如果未找到,则返回 -1
  • lastIndexOf(Object o):返回指定元素 o 在列表中最后一次出现的索引;如果未找到,则返回 -1
  • subList(int fromIndex, int toIndex):返回列表的一个子列表,从 fromIndex(包含)到 toIndex(不包含)。

2.常见实现类

  • ArrayList:底层使用动态数组,提供快速的随机访问,但插入和删除操作可能较慢。

    • 性能特点:对索引的访问非常快,适合频繁读取数据的场景。
    • 线程安全ArrayList 不是线程安全的,若需线程安全的 ArrayList,可以使用 Collections.synchronizedList 方法或 CopyOnWriteArrayList
  • LinkedList:底层使用双向链表,提供快速的插入和删除操作,但随机访问较慢。

    • 性能特点:插入和删除操作较快,适合频繁修改数据的场景。
    • 额外功能:实现了 Deque 接口,提供了双端队列功能(addFirstaddLastremoveFirstremoveLast 等方法)。
  • Vector:底层使用动态数组,类似于 ArrayList,但它是同步的,即线程安全的。

    • 性能特点:由于同步机制,Vector 的性能通常低于 ArrayList
    • 现代使用Vector 现在不常用于新的代码,通常推荐使用 ArrayList

3.遍历list

        使用迭代器

java">Iterator<E> iterator = list.iterator();
while (iterator.hasNext()) {E element = iterator.next();// 处理元素
}

        增强for

java">for (E element : list) {// 处理元素
}

        传统的for

java">for (int i = 0; i < list.size(); i++) {E element = list.get(i);// 处理元素
}

4.实用工具

Collections:提供了一些静态方法来操作 List,如排序、查找、填充等。

java">Collections.sort(list);
Collections.reverse(list);
Collections.fill(list, value);
//Arrays.asList():将数组转换为 List。
List<String> list = Arrays.asList("one", "two", "three");


http://www.ppmy.cn/ops/102697.html

相关文章

C语言迷宫制造

目录 开头程序程序的流程图程序的效果我推荐要制造的迷宫下一篇博客要讲的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h> void printmaze(const cha…

秋招 8.24京东笔试 JDS-2025届秋招-后端开发工程师-第3批

8.24 JDS-2025届秋招-后端开发工程师-第3批 前言 京东不同的语言(C, Java, Go)卷子是不同的&#xff0c;一开始会让你选对应的语言。 选择题分为八股文和编程逻辑题&#xff0c;编程大题有三题(15, 20, 25) 大题&#xff0c;笔者AC了前两道&#xff0c;最后一题暴力20% 希望…

sqlilabs less21-25关手工注入

第21关 一.登录页面 二 .Burp Suite 抓包&#xff0c;进入重放器 三.查询数据库 先进行编码 )and updatexml(1,concat(1,database()),1)# 四.查表&#xff0c;先进行编码 )and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where…

PHP 全攻略:从环境搭建到实战项目的深度探索

一、引言 PHP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛应用于 Web 开发的服务器端脚本语言。它具有简单易学、功能强大、开源免费等特点&#xff0c;被众多开发者和企业所青睐。本文将详细介绍 PHP 的开发环境搭建、基本语法格式、变量与变量作用域、常量与数…

使用python对接空号检测API接口

为什么选择空号检测API接口&#xff1f; 自动化检测电话号码的有效性&#xff0c;减少人工筛查的时间和成本。确保与客户的每一次联系都是有效的&#xff0c;避免因为无效号码而错失重要客户。通过API接口实时更新和验证电话号码数据&#xff0c;保证数据的准确性和及时性。 …

对标GPT4o,智谱推出新一代基座大模型 GLM-4-Plus

最新基座大模型 GLM-4-Plus发布并上线开放平台 在 KDD 国际数据挖掘与知识发现大会上&#xff0c;智谱 GLM 团队介绍了新一代基座大模型GLM-4-Plus。GLM-4-Plus 是智谱全自研 GLM 大模型的最新版本&#xff0c;它标志着智谱继续瞄准通用人工智能&#xff0c;持续推进大模型技术…

ESXI8虚拟机vmdk文件备份到本地硬盘

1. Esxi开启ssh服务 点击“管理”→“服务” →“TSM-SSH”&#xff0c;右击启动 2. 把datastore1中所有虚拟机文件(包括vmdk文件)复制到d:\E1 使用xshell等工具SSH登录ESXI8后台&#xff0c;确认datastore1的具体文件夹路径 在win10&#xff0c;使用cmd&#xff0c;在d:\E1…

设计模式 -- 适配器模式(Adapter Pattern)

1 基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主的目的是兼容性&#xff0c;让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper) 适配器模式属于结构型模式 主要分为三类&#xff1a;类适配…