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

Java列表示例

示例1:使用ArrayList创建并操作列表

ArrayListList接口最常用的实现之一,它内部使用数组来存储元素,因此对于随机访问具有很高的效率。但是,当涉及到频繁的插入或删除操作时,它的性能可能会受到影响,因为这些操作可能需要移动大量元素以保持索引的一致性。

import java.util.ArrayList;
import java.util.List;public class ArrayListExample {public static void main(String[] args) {// 创建一个ArrayList实例List<String> names = new ArrayList<>();// 添加元素到列表names.add("Alice");names.add("Bob");names.add("Charlie");// 修改指定位置的元素names.set(1, "Bobby");// 获取指定位置的元素System.out.println("The second name is: " + names.get(1));// 删除指定位置的元素String removedName = names.remove(2);System.out.println("Removed name: " + removedName);// 遍历列表for (String name : names) {System.out.println(name);}// 输出列表大小System.out.println("Size of list: " + names.size());}
}

示例2:使用LinkedList处理频繁的插入与删除

LinkedList实现了List接口,并且基于双向链表的数据结构。这意味着它可以高效地进行插入和删除操作,尤其是在列表的两端。然而,对于随机访问而言,LinkedList的表现不如ArrayList好,因为它必须从头或尾开始遍历节点直到目标位置。

import java.util.LinkedList;
import java.util.List;public class LinkedListExample {public static void main(String[] args) {// 创建一个LinkedList实例List<String> queue = new LinkedList<>();// 向列表两端添加元素((LinkedList<String>) queue).addFirst("first");((LinkedList<String>) queue).addLast("last");// 从列表两端移除元素System.out.println("Removed from front: " + ((LinkedList<String>) queue).removeFirst());System.out.println("Removed from back: " + ((LinkedList<String>) queue).removeLast());// 在任意位置插入元素queue.add(0, "middle");// 遍历列表for (String item : queue) {System.out.println(item);}}
}

示例3:使用List.of()创建不可变列表

引入了一个新的静态工厂方法List.of(),用于快速创建固定内容的不可变列表。这种方法非常适合于那些不需要改变的集合,因为它提供了一种简洁的方式来定义常量集合,而且由于它是不可变的,所以更加安全。

import java.util.List;public class ImmutableListExample {public static void main(String[] args) {// 使用List.of()创建一个不可变列表List<String> immutableList = List.of("red", "green", "blue");// 尝试修改列表会抛出UnsupportedOperationException异常try {immutableList.add("yellow"); // 这行代码将导致运行时错误} catch (UnsupportedOperationException e) {System.out.println("Cannot modify an immutable list.");}// 安全地读取列表内容for (String color : immutableList) {System.out.println(color);}}
}

http://www.lryc.cn/news/518471.html

相关文章:

  • Objective-C语言的网络编程
  • 安卓OCR使用(Google ML Kit)
  • 《机器学习》——贝叶斯算法
  • 【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率
  • 网站自动签到
  • C 语言奇幻之旅 - 第16篇:C 语言项目实战
  • 项目实战——使用python脚本完成指定OTA或者其他功能的自动化断电上电测试
  • 04、Redis深入数据结构
  • 【MySQL学习笔记】MySQL的索引
  • 利用ArcGIS快速准确地统计出地块的现状容积率
  • C++类的引入
  • 【跨域问题】
  • “深入浅出”系列之FFmpeg:(1)音视频开发基础
  • Springboot3.4整合jsp
  • CSS:背景样式、盒子模型与文本样式
  • 算法:线性查找
  • 【计算机网络】什么是网关(Gateway)?
  • 20250106面试
  • Java 分布式锁:Redisson、Zookeeper、Spring 提供的 Redis 分布式锁封装详解
  • 智能汽车的数字钥匙安全
  • YangQG 面试题汇总
  • 急速了解什么是GPU服务器
  • 用 Python 绘制可爱的招财猫
  • Linux 获取文本部分内容
  • 01-51单片机LED与独立按键
  • 【微服务】SpringBoot 整合Redis实现延时任务处理使用详解
  • 【Java项目】基于SpringBoot的【校园交友系统】
  • Elasticsearch学习(1) : 简介、索引库操作、文档操作、RestAPI、RestClient操作
  • ls指令详讲
  • 【前端】【CSS3】基础入门知识