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

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.kler.cn/a/501187.html

相关文章:

  • 二分查找算法——山脉数组的峰顶索引
  • 重塑视频创作的格局!ComfyUI-Mochi本地部署教程
  • Bash语言的语法糖
  • 010:传统计算机视觉之大津算法初探
  • Spring——依赖注入之p命名空间和c命名空间
  • 慧集通(DataLinkX)iPaaS集成平台-业务建模之业务对象(二)
  • 于交错的路径间:分支结构与逻辑判断的思维协奏
  • IP vs 子系统 Vs SoC 验证
  • import语句详解
  • C#中收发QQ邮箱电子邮件
  • 负载均衡服务器要怎么配置?
  • 计算机网络 笔记 数据链路层3(局域网,广域网,网桥,交换机)
  • 【数据库】Unity 使用 Sqlite 数据库
  • 上手体验微软全新整合的王炸平台Fabric
  • Python爬虫-汽车之家各车系周销量榜数据
  • 网络原理(1)—— 初识
  • 【Linux系列】`find / -name cacert.pem` 文件搜索
  • 16.C语言预处理指令详解:#define、#include、#ifdef 等高效用法
  • Java 常用符号和运算符总结
  • Java 数组与集合的深度解析与应用场景选择
  • 深度学习中常见的激活函数详解
  • html使用css外部类选择器
  • Elasticsearch:使用 Playground 与你的 PDF 聊天
  • 使用正则表达式读取文本数据【Python】
  • 【记录基于Python tkinter的音乐播放器的实现过程】
  • NS3学习——fifth基础上运行tcpVegas算法(附完整源码)