微信ios版下载一键优化清理加速
2026/4/6 9:57:49 网站建设 项目流程
微信ios版下载,一键优化清理加速,清苑住房和城乡建设局网站,儿童玩具商城网站建设目录 一、引言 二、List接口概述 1.常用方法 2.实现List的主要类 2.1ArrayList 2.2LinkedList 2.3Vector 3.三者对比 三、List的遍历与去重 1.List 的三种主要遍历方式 1.1.普通 for 循环 1.2.增强型 for 循环 1.3.使用 Iterator 2.List去重方法 2.1.利用 HashS…目录一、引言二、List接口概述1.常用方法2.实现List的主要类2.1ArrayList2.2LinkedList2.3Vector3.三者对比三、List的遍历与去重1.List 的三种主要遍历方式1.1.普通 for 循环1.2.增强型 for 循环1.3.使用 Iterator2.List去重方法2.1.利用 HashSet 或 LinkedHashSet2.2.Java 8 使用 Stream.distinct()四、结语一、引言在Java中List是java.util包下的一个接口属于Java集合框架的一部分。它允许存储和操作有序的、可重复的对象序列。本文将详细介绍List接口、常用的方法、以及实现List接口的几个主要类如ArrayList、LinkedList、Vector。以下是一个展示Java中List集合的思维导图二、List接口概述List接口继承自Collection接口提供了额外的功能来处理索引位置上的元素。与Set、Map不同List允许包含重复的元素并且可以通过索引来访问或修改特定位置的元素。1.常用方法add(E e)添加指定元素到列表末尾。add(int index, E element)在指定索引处插入指定元素。remove(int index)移除指定索引处的元素。get(int index)获取指定索引处的元素。set(int index, E element)替换指定索引处的元素。size()返回列表中的元素数量。isEmpty()判断列表是否为空。contains(Object o)检查列表是否包含指定元素。indexOf(Object o)返回指定元素首次出现的索引如果不存在则返回-1。lastIndexOf(Object o)返回指定元素最后一次出现的索引如果不存在则返回-1。subList(int fromIndex, int toIndex)获取从fromIndex包括到toIndex不包括之间的子列表// 创建一个ArrayList实例 ListString list new ArrayList(); // 添加元素 list.add(Apple); list.add(Banana); list.add(Cherry); // 插入元素 list.add(1, Apricot); // 移除元素 list.remove(2); // 获取元素 System.out.println(list.get(0)); // 输出: Apple // 替换元素 list.set(0, Avocado); System.out.println(list.get(0)); // 输出: Avocado // 其他方法示例 System.out.println(list.size()); // 输出: 3 System.out.println(list.isEmpty()); // 输出: false System.out.println(list.contains(Banana)); // 输出: true System.out.println(list.indexOf(Cherry)); // 输出: 2 System.out.println(list.lastIndexOf(Cherry)); // 输出: 2 System.out.println(list.subList(0, 2)); // 输出: [Avocado, Banana]2.实现List的主要类2.1ArrayListArrayList是最常用的List实现之一它基于动态数组实现支持随机访问查询效率高但插入和删除效率较低。特点支持快速随机访问。非线程安全。初始容量为10每次扩容时增长50%。使用场景适用于频繁读取而不经常修改的数据集合。示例代码// 创建并初始化ArrayList ListInteger numbers new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // 访问元素 for (int i 0; i numbers.size(); i) { System.out.println(numbers.get(i)); } // 修改元素 numbers.set(1, 20); System.out.println(numbers); // 输出: [1, 20, 3] // 删除元素 numbers.remove(2); System.out.println(numbers); // 输出: [1, 20]2.2LinkedListLinkedList是另一个重要的List实现它基于双向链表实现对于插入和删除操作具有较高的性能但对于随机访问效率较低。特点支持高效的插入和删除操作。非线程安全。可以作为堆栈、队列或双端队列使用。使用场景适用于频繁进行插入和删除操作的数据集合。示例代码// 创建并初始化LinkedList LinkedListCharacter characters new LinkedList(); characters.add(A); characters.add(B); characters.add(C); // 访问元素 for (char c : characters) { System.out.print(c ); } System.out.println(); // 输出: A B C // 在头部插入元素 characters.addFirst(Z); System.out.println(characters); // 输出: [Z, A, B, C] // 在尾部插入元素 characters.addLast(D); System.out.println(characters); // 输出: [Z, A, B, C, D] // 删除元素 characters.removeFirst(); characters.removeLast(); System.out.println(characters); // 输出: [A, B, C]2.3Vector早期线程安全集合类通过方法级synchronized实现同步。默认扩容增长一倍。特点线程安全同步锁导致并发效率低下方法都使用了 synchronized性能低主要用于同步开销遗留类不推荐使用示例代码// 创建 Vector ListString vector new Vector(); // 添加元素 vector.add(Java); vector.add(Python); vector.add(C); // 插入元素 vector.add(1, JavaScript); // 输出结果 System.out.println(vector); // 输出: [Java, JavaScript, Python, C] // 删除元素 vector.remove(2); // 遍历 for (String lang : vector) { System.out.println(lang); }3.三者对比三、List的遍历与去重1.List 的三种主要遍历方式1.1.普通 for 循环适用于需要访问索引的场景。ListString list new ArrayList(); list.add(A); list.add(B); list.add(C); for (int i 0; i list.size(); i) { System.out.println(Index: i , Value: list.get(i)); }优点可以灵活控制索引。支持随机访问适合 ArrayList。缺点对于 LinkedList 来说效率较低因为每次都要从头开始查找元素。1.2.增强型 for 循环语法简洁适用于只需要获取元素的情况。ListString list new ArrayList(); list.add(A); list.add(B); list.add(C); for (String item : list) { System.out.println(Item: item); }优点简洁易读。适用于所有实现了 Iterable 接口的集合类。缺点无法获取索引。不能修改集合结构如删除元素会抛出异常。1.3.使用 Iterator可以安全地在遍历时进行删除操作。IteratorString iterator list.iterator(); while (iterator.hasNext()) { String item iterator.next(); if (B.equals(item)) { iterator.remove(); // 安全删除 } }优点支持在遍历过程中安全删除元素。更加通用适用于各种集合类型。2.List去重方法Java 中有多种方式可以实现 List 去重下面是几种常见的方式2.1.利用 HashSet 或 LinkedHashSet使用HashSet不保留顺序ListInteger list Arrays.asList(1, 2, 2, 3, 4, 4, 5); ListInteger uniqueList new ArrayList(new HashSet(list)); System.out.println(uniqueList); // 输出顺序可能不同使用LinkedHashSet保留插入顺序ListInteger list Arrays.asList(1, 2, 2, 3, 4, 4, 5); ListInteger uniqueList new ArrayList(new LinkedHashSet(list)); System.out.println(uniqueList); // 输出: [1, 2, 3, 4, 5]说明HashSet 和 LinkedHashSet 虽然常用于去重但它们底层确实基于 HashMap 和 LinkedHashMap 实现的。也就是说你给 List 去重时实际上是借助了 Map 的特性来实现的。具体原因这里不做详细说明需要的同学请关注我后续的文章。2.2.Java 8 使用 Stream.distinct()ListInteger list Arrays.asList(1, 2, 2, 3, 4, 4, 5); ListInteger uniqueList list.stream().distinct().collect(Collectors.toList()); System.out.println(uniqueList);说明distinct() 方法依赖于对象的 equals() 和 hashCode() 方法。如果是自定义对象请确保正确重写这两个方法。四、结语List 作为 Java 集合框架中最基础、最常用的数据结构之一贯穿于几乎所有的 Java 应用开发中。掌握 List 的核心接口、常用实现类如 ArrayList、LinkedList、Vector、遍历方式和去重技巧不仅有助于写出更高效、清晰的代码也能帮助我们在面对复杂业务逻辑时做出更合理的技术选型。在实际开发中理解不同 List 实现的底层原理和适用场景是写出高性能程序的关键。同时结合 Set 和 Map 的使用可以更好地处理唯一性、顺序性和映射关系等常见需求。希望本文能为你深入理解 Java 中的 List 集合提供清晰的思路和实用的指导。无论你是刚入门的新手还是有一定经验的开发者集合框架始终是值得反复学习和实践的重要内容。持续深耕才能在实际项目中游刃有余。说真的这两年看着身边一个个搞Java、C、前端、数据、架构的开始卷大模型挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis稳稳当当过日子。结果GPT、DeepSeek火了之后整条线上的人都开始有点慌了大家都在想“我是不是要学大模型不然这饭碗还能保多久”先给出最直接的答案一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇如何学习AGI大模型作为一名热心肠的互联网老兵我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享**一、2025最新大模型学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛没有明确的学习路线可能会导致新人感到迷茫不知道应该专注于哪些内容。我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:AI大模型时代的华丽登场L1阶段我们会去了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理关键技术以及大模型应用场景通过理论原理结合多个项目实战从提示工程基础到提示工程进阶掌握Prompt提示工程。L2级别AI大模型RAG应用开发工程L2阶段是我们的AI大模型RAG应用开发工程我们会去学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3级别大模型Agent应用架构进阶实践L3阶段大模型Agent应用架构进阶实现我们会去学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造我们自己的Agent智能体同时还可以学习到包括Coze、Dify在内的可视化工具的使用。L4级别大模型微调与私有化部署L4阶段大模型的微调和私有化部署我们会更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握而L3 L4更多的是通过项目实战来掌握大模型的应用开发针对以上大模型的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF三、大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。四、大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询