当前位置: 首页 > 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) << *…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...