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

Java List(列表)

List 是一个有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。List 集合默认按元素的添加顺序设置元素的索引,第一个添加到 List 集合中的元素的索引为 0,第二个为 1,依此类推。

List 实现了 Collection 接口,它主要有两个常用的实现类:ArrayList 类和 LinkedList 类。

 

这些类在Collections框架中定义并实现List接口。

如何使用List?

在Java中,必须导入 java.util.List 包才能使用List。

//List 的ArrayList 实现
List<String> list1 = new ArrayList<>();// List 的LinkedList 实现
List<String> list2 = new LinkedList<>();

在这里,我们已经创建ArrayList和LinkedList类的对象list1和list2。现在这些对象可以使用List接口的功能。

List方法

List接口包括Collection接口的所有方法。 这是因为Collection是List的超级接口。

Collection接口中还提供了一些常用的List接口方法:

  • add() - 将元素添加到列表

  • addAll() - 将一个列表的所有元素添加到另一个

  • get() - 有助于从列表中随机访问元素

  • iterator() - 返回迭代器对象,该对象可用于顺序访问列表的元素

  • set() - 更改列表的元素

  • remove() - 从列表中删除一个元素

  • removeAll() - 从列表中删除所有元素

  • clear() - 从列表中删除所有元素(比removeAll()效率更高)

  • size() - 返回列表的长度

  • toArray() - 将列表转换为数组

  • contains() -  如果列表包含指定的元素,则返回true

List接口的实现

1.实现ArrayList类

import java.util.List;
import java.util.ArrayList;public class Main {public static void main(String[] args) {//使用ArrayList类创建列表List<Integer> numbers = new ArrayList<>();//将元素添加到列表numbers.add(1);numbers.add(2);numbers.add(3);System.out.println("List: " + numbers);//从列表中访问元素int number = numbers.get(2);System.out.println("访问元素: " + number);//从列表中删除元素int removedNumber = numbers.remove(1);System.out.println("删除元素: " + removedNumber);}
}

输出结果

List: [1, 2, 3]
访问元素: 3
删除元素: 2

要了解更多信息ArrayList,请访问Java ArrayList。

2.实现LinkedList类

import java.util.List;
import java.util.LinkedList;public class Main {public static void main(String[] args) {//使用LinkedList类创建列表List<Integer> numbers = new LinkedList<>();//将元素添加到列表numbers.add(1);numbers.add(2);numbers.add(3);System.out.println("List: " + numbers);//从列表中访问元素int number = numbers.get(2);System.out.println("访问元素: " + number);//使用indexOf()方法int index = numbers.indexOf(2);System.out.println("位置3的元素是 " + index);//从列表中删除元素int removedNumber = numbers.remove(1);System.out.println("删除元素: " + removedNumber);}
}

输出结果

List: [1, 2, 3]
访问元素: 3
位置3的元素是 1
删除元素: 2

Java List 与 Set

List接口和Set接口都继承了Collection接口。 但是,它们之间存在一些差异。

  • List可以包含重复的元素。但是,Set不能有重复的元素。

  • List中的元素以某种顺序存储。但是,Set中的元素以组的形式存储,就像数学中的集合一样。

相关文章:

Java List(列表)

List 是一个有序、可重复的集合&#xff0c;集合中每个元素都有其对应的顺序索引。List 集合允许使用重复元素&#xff0c;可以通过索引来访问指定位置的集合元素。List 集合默认按元素的添加顺序设置元素的索引&#xff0c;第一个添加到 List 集合中的元素的索引为 0&#xff…...

虚拟机的创建与使用

一、虚拟机的下载 链接&#xff1a;百度网盘下载链接 提取码&#xff1a;a9p4 二、新建虚拟机系统 需要有版本序列号 注意: 选择 第一个是纯dos 的窗口指令 桌面没有任何东西 选择第二个就是正常的操作系统.有文件夹 我的电脑之类的 三、从主机中复制文件到虚拟机中需要安装 …...

springboot传给前端日期少了八小时

在Spring Boot中&#xff0c;如果从MySQL数据库中获取日期&#xff0c;并在前端显示时少了8小时&#xff0c;这通常是由于时区的问题导致的。MySQL默认使用系统的时区&#xff0c;而Spring Boot默认使用UTC时区。 spring-boot默认使用Jackson对返回到前端的值进行序列化。Jack…...

链表数组OJ题汇总

前言&#xff1a; 在计算机科学中&#xff0c;数组和链表是两种常见的数据结构&#xff0c;用于存储和组织数据。它们分别具有不同的特点和适用场景。 本博客将深入讨论数组和链表在OJ题目中的应用。我们将从基本概念开始&#xff0c;介绍数组和链表的定义和特点&#xff0c;并…...

中间人攻击与 RADIUS 身份验证

在数字时代&#xff0c;中间人&#xff08;MitM&#xff09;攻击已成为一种日益严重的威胁。根据网络安全风险投资公司的网络安全统计数据&#xff0c;预计到2025年&#xff0c;网络犯罪每年将给世界造成10.5万亿美元的损失&#xff0c;比2015年的3万亿美元大幅增加。这种令人震…...

虚拟机安装国产操作系统的方法

1.这里以银河麒麟为例&#xff0c;其他以liunx为基础的国产操作系统都是一样的方法。 2.下载操作系统如下&#xff08;选第一个就行&#xff09;&#xff1a; 任选其一下载&#xff1a; 3.安装虚拟机软件(这里以virtualbox为例&#xff0c;vmare也是一样都可以) 4.打开虚拟机…...

【Linux】云服务器自动化部署VuePress博客(Jenkins)

前言 博主此前是将博客部署在 Github Pages&#xff08;基于 Github Action&#xff09;和 Vercel 上的&#xff0c;但是这两种部署方式对于国内用户很不友好&#xff0c;访问速度堪忧。因此将博客迁移到自己的云服务器上&#xff0c;并且基于 Jenkins&#xff08;一款开源持续…...

Golang字符串处理深入解析:探索 strings 标准库的全部方法

Golang 的 strings 标准库提供了许多用于处理字符串的函数。以下是一些主要的方法&#xff1a; Contains(s, substr string) bool: 检查字符串是否包含子串。ContainsAny(s, chars string) bool: 检查字符串是否包含字符集中的任何字符。ContainsRune(s string, r rune) bool:…...

如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透?

如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透&#xff1f; 文章目录 如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透&#xff1f;前言1. 在群辉NAS系统下安装cpolar套件2. 管理隧道列表3. 创建固定数据隧道 前言 群晖作为大容量存储系统&#xff0c;既可…...

opencv基础57-模板匹配cv2.matchTemplate()->(目标检测、图像识别、特征提取)

OpenCV 提供了模板匹配&#xff08;Template Matching&#xff09;的功能&#xff0c;它允许你在图像中寻找特定模板&#xff08;小图像&#xff09;在目标图像中的匹配位置。模板匹配在计算机视觉中用于目标检测、图像识别、特征提取等领域。 以下是 OpenCV 中使用模板匹配的基…...

搜索插入位置

题目描述&#xff1a; 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target …...

Centos Linux快速复制文件并查看进度的方法(保留文件原始时间戳等属性)

用cp命令保证快速复制&#xff0c;screen保证不丢失你对cp命令执行情况的掌控。 需要用到screen软件包&#xff0c;防止复制过程中终端被关闭。 centos linux直到7默认都没有screen&#xff0c;需要安装一下 普通账户&#xff1a; sudo yum -y install screen root账户&am…...

牛奶产业链的工业“链主品牌”利乐是如何诞生的?

瑞典的利乐公司&#xff0c;一个在乳品产业链中占据重要地位的“链主品牌”&#xff0c;通过提供创新的包装材料和解决方案&#xff0c;在全球范围内占据了显著的市场份额。利乐从不生产一滴奶&#xff0c;却赚取了中国乳业 75%的利润&#xff0c;一年创收超过 800 亿人民币。在…...

【历史上的今天】8 月 11 日:苹果电脑之父诞生;阿里巴巴收购雅虎中国;OpenAI 击败电竞世界冠军

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 8 月 11 日&#xff0c;在 1999 年的今天&#xff0c;欧亚一些地区观赏到了一次壮丽的日全食景象。这次日全食是本世纪最后一次日全食&#xff0c;将持续两分钟…...

Flutter 报错 Could not create task ‘xxx‘.this and base files have different roots

遇到此问题也是先去百度了&#xff0c;有的说改了Gradle版本、gradle-wrapper.properties版本和ext.kotlin_version版本之后解决的&#xff0c;我没尝试&#xff0c;我用蹩脚的英语大致读了一下就不是这样说的&#xff0c;况且我用有道翻译了也不是这个意思啊&#xff0c;我不知…...

单调递增的数字——力扣738

文章目录 题目描述解法题目描述 解法 #include<iostream> #include<string>using namespace std;int monotoneIncreasingDigits...

STL文件格式详解【3D】

STL&#xff08;StereoLithography&#xff1a;立体光刻&#xff09;文件是 3 维表面几何形状的三角形表示。 表面被逻辑地细分或分解为一系列小三角形&#xff08;面&#xff09;。 每个面由垂直方向和代表三角形顶点&#xff08;角&#xff09;的三个点来描述。 切片算法使用…...

【分布式技术专题】RocketMQ延迟消息实现原理和源码分析

痛点背景 业务场景 假设有这么一个需求&#xff0c;用户下单后如果30分钟未支付&#xff0c;则该订单需要被关闭。你会怎么做&#xff1f; 之前方案 最简单的做法&#xff0c;可以服务端启动个定时器&#xff0c;隔个几秒扫描数据库中待支付的订单&#xff0c;如果(当前时间-订…...

Qt中ffmpeg API存储和显示摄像头视频

Qt中ffmpeg API存储和显示摄像头视频的功能需要之前写的视频ffmpegAPI的视频播放的流程。 代码源码位置&#xff1a;https://download.csdn.net/download/qq_43812868/88157743?spm1001.2014.3001.5503 一、存储和显示摄像头的视频的流程 这是读取打开视频文件的流程&#x…...

jfinal tomcat部署

首先明确一下 JFinal 项目是标准的 java web 项目&#xff0c;其部署方式与普通 java web 项目没有任何差别。Java Web 项目在 Tomcat 下部署有一些不必要的坑需要避免&#xff0c;所以撰写此文方便大家绕过一些坑&#xff0c;以下部署以 linux 为例&#xff0c;windows 与此类…...

Miniconda-Python3.11镜像:快速搭建Web开发/数据分析环境

Miniconda-Python3.11镜像&#xff1a;快速搭建Web开发/数据分析环境 1. 为什么选择Miniconda-Python3.11 Python作为当下最流行的编程语言之一&#xff0c;在Web开发、数据分析、人工智能等领域都有广泛应用。但Python环境管理一直是个令人头疼的问题——不同项目可能需要不…...

【转行大模型】大龄程序员转行AI大模型:高薪、前沿与实战全攻略

前言 对于大龄程序员而言&#xff0c;转行到AI大模型领域是一个既充满挑战又极具吸引力的选择。在这个领域&#xff0c;您将有机会接触到最新的技术趋势&#xff0c;参与到前沿的项目中&#xff0c;并且有可能获得更高的薪酬。下面是一些具体的步骤和建议&#xff0c;帮助您顺…...

公共安全监控:视频分析与人流密度检测算法

公共安全监控&#xff1a;视频分析与人流密度检测算法 随着城市化进程加快&#xff0c;公共场所的人流密度急剧增加&#xff0c;如何高效管理人群、预防安全事故成为重要课题。公共安全监控系统通过视频分析与人流密度检测算法&#xff0c;能够实时监测人群动态&#xff0c;为…...

抖音无水印下载神器:3分钟掌握批量下载技巧,轻松保存你喜欢的每一个视频

抖音无水印下载神器&#xff1a;3分钟掌握批量下载技巧&#xff0c;轻松保存你喜欢的每一个视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication…...

推荐2款无需安装实用软件,桌面图标整理设置,简真是Windows神器!

聊一聊今天给大家推荐2款桌面美化小工具。为什么觉得要推荐这个小工具呢&#xff1f;因为最近帮一些人远程处理一些问题。感觉那电脑桌面&#xff0c;密密麻麻&#xff0c;全是小图标。我想找个东西都难&#xff0c;是太难了。我真恨不得上手整理。但又怕整理了&#xff0c;人家…...

代码随想录算法训练营第四十二天|LeetCode 188 买卖股票的最佳时机 IV、LeetCode 309 最佳买卖股票时机含冷冻期、LeetCode 714 买卖股票的最佳时机含手续费

参考文章均来自代码随想录 LeetCode 188 买卖股票的最佳时机 IV 参考文章链接 给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&#xf…...

别再让CPU拖后腿!用PyTorch CUDA Graph给vLLM推理加速5倍(附完整代码)

突破vLLM推理性能瓶颈&#xff1a;CUDA Graph实战优化指南 在部署大语言模型推理服务时&#xff0c;许多团队发现即使采用了vLLM这样的高效推理引擎&#xff0c;GPU利用率仍然难以突破60%的瓶颈。通过Nsight Systems工具分析&#xff0c;我们会发现大量时间消耗在CPU调度环节—…...

为什么SynthText是文本检测模型训练的秘密武器?

为什么SynthText是文本检测模型训练的秘密武器&#xff1f; 【免费下载链接】SynthText Code for generating synthetic text images as described in "Synthetic Data for Text Localisation in Natural Images", Ankush Gupta, Andrea Vedaldi, Andrew Zisserman, …...

ACI:专为AI应用设计的轻量级容器编排框架解析与实践

1. 项目概述&#xff1a;ACI&#xff0c;一个面向AI应用的开源容器化编排框架最近在开源社区里&#xff0c;一个名为aipotheosis-labs/aci的项目引起了我的注意。乍一看这个标题&#xff0c;可能会觉得有些抽象——“ACI”是什么&#xff1f;是某种新的容器技术吗&#xff1f;和…...

【信创验收倒计时】:Java系统通过等保2.0+国密SM2/SM4+中间件适配的9项必检清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;信创验收背景与Java系统国产化适配总体要求 在国家信息技术应用创新战略持续深化的背景下&#xff0c;信创项目验收已从“能用”全面转向“好用、安全、可控”。Java 系统作为政务、金融、能源等关键领…...