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

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。

2024 年&#xff0c;高端封装市场规模为 80 亿美元&#xff0c;预计到 2030 年将超过 280 亿美元&#xff0c;2024-2030 年复合年增长率为 23%。 细分到各个终端市场&#xff0c;最大的高端性能封装市场是“电信和基础设施”&#xff0c;2024 年该市场创造了超过 67% 的收入。…...