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

【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基础教学&#xff0c;今天教学第八篇&#xff1a;Java中List详解说明。 在 Java 编程中&#xff0c;List 接口是一个非常常用的集合接口&#xff0c;它代表了一个有序的集合&#xff0c;可以包含重复的元素。List 接口提供了一系列操作方法&#xff0c;…...

RN向上向下滑动组件封装(带有渐变色)

这段组件代码逻辑是出事有一个View和下面的块,下面的块也就是红色区域可以按住向上向下滑动,当滑动到屏幕最上面则停止滑动,再向上滑动的过程中,上方的View的背景色也会有个渐变效果,大概逻辑就是这样 代码如下 import React, {useEffect, useRef, useState} from react; impo…...

27、Lua 学习笔记之五(Lua中的数学库)

Lua中的数学库 Lua5.1中数学库的所有函数如下表&#xff1a; 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取地址操作符重载

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;C❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、拷贝构造函数 1、概念 2、特征 二、赋值运算符重载 1、运算符重载 2、赋值运算符重载 3、前置…...

OpenHarmony实战开发-页面深色模式适配。

介绍 本示例介绍在开发应用以适应深色模式时&#xff0c;对于深色和浅色模式的适配方案&#xff0c;采取了多种策略如下&#xff1a; 1. 固定属性适配&#xff1a;对于部分组件的颜色属性&#xff0c;如背景色或字体颜色&#xff0c;若保持不变&#xff0c;可直接设定固定色值…...

域名解析出现错误,该如何解决?

域名作为网络地址&#xff0c;是我们访问网站的必经之路&#xff0c;域名解析就是把你的域名解析成一个ip地址&#xff0c;在使用的过程中遇到域名解析文件异常也是常有的事。如果域名解析出现错误&#xff0c;该怎么解决呢&#xff1f; 一、打开网页时&#xff0c;显示域名解析…...

从iPhone恢复已删除照片的最佳软件

本文分享了从iPhone恢复已删除照片的最佳软件。如果您正在寻找如何从iPhone恢复已删除的照片&#xff0c;请查看这篇文章。 为什么您需要软件从iPhone恢复已删除的照片&#xff1f; 没有什么比丢失iPhone上的重要数据更痛苦的了&#xff0c;尤其是一些具有珍贵回忆的照片。有时…...

MySQL模糊查询

一、MySQL通配符模糊查询(%&#xff0c;_) 1.1.通配符的分类 1.“%”百分号通配符&#xff1a;表示任何字符出现任意次数&#xff08;可以是0次&#xff09; 2.“_”下划线通配符&#xff1a;表示只能匹配单个字符&#xff0c;不能多也不能少&#xff0c;就是一个字符。当然…...

QEMU_v8搭建OP-TEE运行环境

文章目录 一、依赖下载二、设置网络三、安装下载四、运行OP-TEE 一、依赖下载 更新依赖包&#xff0c;下载一系列依赖。比如Python需要Python3.x版本&#xff0c;需要配置git的用户名和邮箱等。这里不详细展开了&#xff0c;很多博客都有涉及到。 二、设置网络 这一点非常重…...

C++11 设计模式0. 设计模式的基本概念,设计模式的准则,如何学习设计模式,24种设计模式的分为3大类

一 设计模式的基本概念&#xff1a; 模式&#xff1a;指事物的标准样式 或者 理解成 针对特定问题的可重用解决方案。 设计模式&#xff0c;是在特定问题发生时的可重用解决方案。 设计模式一般用于大型项目中。 大型项目中&#xff0c;设计模式保证所设计的模块之间代码的灵…...

(十)C++自制植物大战僵尸游戏设置功能实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/m0EtD 游戏设置 游戏设置功能是一个允许玩家根据个人喜好和设备性能来调整游戏各项参数的重要工具。游戏设置功能是为了让玩家能够根据自己的需求和设备性能来调整游戏&#xff0c;以获得最佳的游戏体验。不同的游戏和平…...

数据结构——通讯录(顺序表的实战项目)

&#xff08;—&#xff09;.通讯录的功能 大家应该都十分了解通讯录的功能吧&#xff0c;无非就是对联系人的增添删除&#xff0c;还有信息的修改&#xff0c;并且联系人信息要包含名字&#xff0c;电话&#xff0c;性别&#xff0c;地址等。我把通讯录的功能总结如下&#x…...

数据库-Redis(14)

目录 66.Redis为什么主从全量复制使用RDB而不是使用AOF? 67.Redis为什么还有无磁盘复制模式? 68.Redis为什么还会有从库的从库设计?...

Thinkphp5.0命令行创建验证器validate类

前言 最近接手了个用FastAdmin&#xff08;基于tp5&#xff09;写的项目&#xff0c;发现命令行只提供生成controller和model的命令&#xff0c;没有提供make:validate命令&#xff0c;而5.1及以上版本是有的&#xff0c;对于使用tp5.0框架或者基于tp5.0的第三框架&#xff08…...

人民网至顶科技:《开启智能新时代:2024中国AI大模型产业发展报告发布》

​3月26日&#xff0c;人民网财经研究院与至顶科技联合发布《开启智能新时代&#xff1a;2024年中国AI大模型产业发展报告》。该报告针对AI大模型产业发展背景、产业发展现状、典型案例、挑战及未来趋势等方面进行了系统全面的梳理&#xff0c;为政府部门、行业从业者以及社会公…...

AI大模型探索之路-应用篇13:企业AI大模型选型指南

目录 前言 一、概述 二、有哪些主流模型&#xff1f; 三、模型参数怎么选&#xff1f; 四、参数有什么作用&#xff1f; 五、CPU和GPU怎么选&#xff1f; 六、GPU和显卡有什么关系&#xff1f; 七、GPU主流厂商有哪些&#xff1f; 1、NVIDIA芯片怎么选&#xff1f; 2、…...

【安全】查杀linux上c3pool挖矿病毒xmrig

挖矿平台&#xff1a;猫池 病毒来源安装脚本 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小时结合多个项目实践总结和整体出来的&#xff0c;欢迎大家交流&#xff01; BootLoader刷写章节 ①&#xff1a;预编程步骤流程流程图 1.1 概述 1.2 流程步骤描述 1&#xff09;整车ECU进入扩展会话 2&#xff09;刷…...

OpenHarmony实战开发-MpChart图表实现案例。

介绍 MpChart是一个包含各种类型图表的图表库&#xff0c;主要用于业务数据汇总&#xff0c;例如销售数据走势图&#xff0c;股价走势图等场景中使用&#xff0c;方便开发者快速实现图表UI。本示例主要介绍如何使用三方库MpChart实现柱状图UI效果。如堆叠数据类型显示&#xf…...

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) << *…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…...

Linux操作系统共享Windows操作系统的文件

目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项&#xff0c;设置文件夹共享为总是启用&#xff0c;点击添加&#xff0c;可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download&#xff08;这是我共享的文件夹&#xff09;&…...