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():返回一个迭代器,用于遍历列表。

示例代码

import java.util.ArrayList;
import java.util.List;public class ListExample {public static void main(String[] args) {// 创建一个 ArrayListList<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源码梳理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/69541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01-SDRAM控制器的设计——案例总概述

本教程重点▷▷▷ 存储器简介。 介绍 SDRAM 的工作原理。 详细讲解SDRAM 控制的Verilog 实现方法。 PLL IP和FIFO IP 的调用&#xff0c;计数器设计&#xff0c;按键边沿捕获&#xff0c;数码管控制。 完成SDRAM控制器应用的完整案例。 Signal Tap 调试方法。 准备工作▷…

idea 找不到或者无法加载主类

idea项目&#xff0c;之前一直是正常运行的&#xff0c;放假了之后再回来就遇到启动不了的问题。 WebApplication这个类右键运行的时候&#xff0c;也提示找不到主类。 对于这种之前运行没有问题&#xff0c;突然出问题的项目。 我的点是没有改动代码和数据的情况下项目就跑不起…

鸿蒙harmony 手势密码

1.效果图 2.设置手势页面代码 /*** 手势密码设置页面*/ Entry Component struct SettingGesturePage {/*** PatternLock组件控制器*/private patternLockController: PatternLockController new PatternLockController()/*** 用来保存提示文本信息*/State message: string …

Python中3个与众不同的运算符 :=海象 ->箭头 //地板除法运算符

在python中&#xff0c;有一些和其他编程语言不太一样的运算符&#xff0c;今天就给大家介绍几种Python中的3个与众不同的运算符 :海象 -&#xff1e;箭头 // 地板除法运算符。 1. 海象运算符 : 这个运算符用来分配值并同时返回变量&#xff0c;英文 walrus (a : 5) print(a…

2025.1.8(qt图形化界面之消息框)

笔记&#xff08;后期复习补充&#xff09; 作业 1> 手动将登录项目实现&#xff0c;不要使用拖拽编程 并且&#xff0c;当点击登录按钮时&#xff0c;后台会判断账号和密码是否相等&#xff0c;如果相等给出登录成功的提示&#xff0c;并且关闭当前界面&#xff0c;发射一…

实践深度学习:构建一个简单的图像分类器

引言 深度学习在图像识别领域取得了巨大的成功。本文将指导你如何使用深度学习框架来构建一个简单的图像分类器&#xff0c;我们将以Python和TensorFlow为例&#xff0c;展示从数据准备到模型训练的完整流程。 环境准备 在开始之前&#xff0c;请确保你的环境中安装了以下工…

json转excel,在excel内导入json, json-to-excel插件

简介 JSON 转 Excel 是一款 Microsoft Excel 插件&#xff0c;可将 JSON 数据转换为 Excel 表格。 要求 此插件适用于以下环境&#xff1a;Excel 2013 Service Pack 1 或更高版本、Excel 2016 for Mac、Excel 2016 或更高版本、Excel Online。 快速开始 本快速开始指南适用…

腾讯云AI代码助手评测:如何智能高效完成Go语言Web项目开发

腾讯云AI代码助手评测&#xff1a;如何智能高效完成Go语言Web项目开发 ?? 文章目录 腾讯云AI代码助手评测&#xff1a;如何智能高效完成Go语言Web项目开发 ?? 背景引言开发环境介绍腾讯云AI代码助手使用实例 1. 代码补全2. 技术对话3. 代码优化4. 规范代码5. Bug处理 获得…

STM32 CUBE Can调试

STM32 CUBE Can调试 1、CAN配置2、时钟配置3、手动添加4、回调函数5、启动函数和发送函数6、使用方法(采用消息队列来做缓存)7、数据不多在发送函数中获取空邮箱发送&#xff0c;否则循环等待空邮箱 1、CAN配置 2、时钟配置 3、手动添加 需要注意的是STM32CUBE配置的代码需要再…

清除el-table选中状态 clearSelection

如何在Vue应用中使用Element UI的el-table组件&#xff0c;通过this.$refs.multipleTable.clearSelection()方法来清除所有选中行的状态。适合前端开发者了解表格组件的交互操作。 // el-table绑定ref<el-table selection-change"selsChange" ref"multipl…

小结:NAT

在华为设备中&#xff0c;NAT&#xff08;网络地址转换&#xff09;有多种类型&#xff0c;通常用于实现私有网络与公网之间的地址转换&#xff0c;或是实现内部网络的地址隔离。以下是华为路由器和交换机中常见的 NAT 类型及其配置。 1. NAT 类型 (1) 静态 NAT&#xff08;S…

【大数据技术】搭建完全分布式高可用大数据集群(Kafka)

搭建完全分布式高可用大数据集群(Kafka) kafka_2.13-3.9.0.tgz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群 Kafka 的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/software目录下,软件安装至/opt目录下。 安…

如何使用deepseek创建钉钉收费AI助理

1、打开deepseek&#xff0c;简单描述下自己的问题&#xff0c;勾选深度思考 2、deepseek给我生成了一大段提示词模板 3、打开钉钉-应用中心-找AI助理 4、点击立即创作 5、创作 默认创建的是免费上网&#xff0c;需要创建收费的话需要先申请&#xff0c;填一个表单内容和价格&…

DeepSeek RAGFlow构建本地知识库系统

学习目标 DeepSeek RAGFlow 构建本地知识库系统 学习内容 下载安装Docker 1.1 Docker 是什么 1.2 下载Docker 1.3 安装Docker配置DockerRAGFlow 配置 3.1 下载RAGFlow 3.2 RAGFlow配置 3.3 启动RAGFlow Docker新建知识库 4.1 查看本机IP 4.2 OLLAMA_HOST 变量配置 4.3 添加模…

unity学习31:Video Player 视频播放相关基础

目录 1 新增Video Player的 component 2 导入视频到Asset里 3 拖入到 video player的 video clip里去即可 4 渲染模式 4.1 多种渲染模式 4.2 如果选择 Render Texture模式 4.3 然后把Render Texture 拖到游戏里的 gameObject上面 5 在UI上显示 5.1 创建UI 5.2 在UI上…

机器学习 - 需要了解的条件概率、高斯分布、似然函数

似然函数是连接数据与参数的桥梁&#xff0c;通过“数据反推参数”的逆向思维&#xff0c;成为统计推断的核心工具。理解它的关键在于区分“参数固定时数据的概率”与“数据固定时参数的合理性”&#xff0c;这种视角转换是掌握现代统计学和机器学习的基础。 一、在学习似然函…

[LUA ERROR] bad light userdata pointer

Cocos2d项目&#xff0c;targetSdkVersion30&#xff0c;在 android 13 设备运行报错: [LUA ERROR] bad light userdata pointer &#xff0c;导致黑屏。 参考 cocos2dx 适配64位 arm64-v8a 30 lua 提示 bad light userdata pointer 黑屏-CSDN博客的方法 下载最新的Cocos2dx …

使用Docker + Ollama在Ubuntu中部署deepseek

1、安装docker 这里建议用docker来部署&#xff0c;方便简单 安装教程需要自己找详细的&#xff0c;会用到跳过 如果你没有安装 Docker&#xff0c;可以按照以下步骤安装&#xff1a; sudo apt update sudo apt install apt-transport-https ca-certificates curl software-p…

导航守卫router.beforeEach

router.beforeEach 是一个全局前置守卫&#xff0c;在每次路由跳转之前都会触发。 //index.jsrouter.beforeEach((to, from, next) > {// 打印即将要进入的目标路由信息console.log(即将要进入的目标路由信息:, to)// 打印当前正要离开的路由信息console.log(当前正要离开的…

systemverilog的program和module的区别

1. 设计目的 module 硬件建模&#xff1a;用于描述数字电路的结构和行为&#xff08;如组合逻辑、时序逻辑、连线等&#xff09;。 层次化设计&#xff1a;支持模块化设计&#xff0c;可嵌套其他模块或接口&#xff08;interface&#xff09;。 仿真周期内持续存在&#xff1…