新闻详情

新闻详情

首页 / 资讯中心 / 详情

Java 集合|Collection、List、ArrayList、LinkedList、泛型、Collections 工具类

发布时间:2026/9/8 15:43:11来源:尧图网络
Java 集合|Collection、List、ArrayList、LinkedList、泛型、Collections 工具类
一、集合概念集合是容器工具用于存储数量不等的多个对象。集合相关接口、类全部位于java.util包下。学习集合四个核心角度集合接口的特点集合接口的功能方法集合接口对应的实现类集合的遍历方式二、Collection 集合体系2.1 Collection 父接口特点可以存储任意Object类型对象。常用方法表格方法说明boolean add(Object o)向集合添加对象boolean contains(Object o)判断集合是否包含该元素返回 true/falseboolean remove(Object o)移除集合中的指定对象int size()获取集合有效元素个数Collection 没有直接实现类功能由子接口实现。2.2 List 子接口特点存储 Object 对象有序、带下标、允许元素重复下标范围0 ~ size()-1List 继承 Collection 全部方法额外扩展方法表格方法说明add(int index,Object o)在指定下标位置插入元素Object get(int index)根据下标获取元素Object remove(int index)根据下标删除元素返回被删除对象Object set(int index,Object o)修改指定下标元素返回修改前旧元素List subList(int fromIndex,int toIndex)截取集合左包含、右不包含[fromIndex, toIndex‑1]2.3 List 实现类1. ArrayList底层数组实现JDK7创建对象不会初始化底层数组第一次执行add()才初始化数组初始容量默认10扩容按照1.5 倍扩容。特性查询效率高中间插入、删除元素效率低线程不安全执行效率高。适用场景大量做末尾添加、查询操作。2. Vector底层数组实现JDK1.0线程安全效率较低查询快中间增删慢。3. LinkedList底层双向链表实现查询遍历效率低中间位置增删元素效率高线程不安全效率高。✨面试题ArrayList 和 LinkedList 的区别ArrayList 底层数组查询快中间插入删除慢1.5 倍扩容线程不安全。LinkedList 底层双向链表查询慢中间增删效率高没有扩容机制线程不安全。2.4 List 集合三种遍历方式① 下标 for 遍历for(int i 0 ; i list.size() ; i){ Object obj list.get(i); }② for‑each 增强 for 循环开发常用for‑each 底层本质是迭代器for(Object obj : list){ //操作obj }③ Iterator 迭代器遍历//获取迭代器对象 IteratorString it list.iterator(); while(it.hasNext()){ //hasNext() 判断游标右侧是否还有元素 String str it.next(); //next()取出下一个元素无元素会抛出 NoSuchElementException System.out.println(str); }注意迭代器游标初始位于所有元素最左侧调用next()之前必须先用hasNext()判断。2.5 泛型1泛型集合作用约束集合存储类型保证数据类型安全集合元素类型统一。//完整写法 ListString list new ArrayListString(); //JDK7之后菱形语法简写 ListString list new ArrayList();泛型只能写引用类型如果需要基本类型使用对应的包装类。不指定泛型默认泛型为Object。2自定义泛型类泛型标识一般使用单个大写字母T、K、V、E//定义泛型类 class DemoT{ //T就当作一种数据类型使用 private T data; } //创建对象时指定泛型真实类型 DemoString demo new Demo();JDK5 之后泛型也可以定义在接口上。使用泛型让代码更加通用灵活多用于通用工具类、底层框架开发。2.6 Collections 工具类java.util.Collections集合工具类全部为静态方法直接类名调用。表格静态方法说明Collections.reverse(List list)集合元素反转Collections.shuffle(List list)集合元素随机打乱Collections.sort(List list)集合排序排序注意点如果集合存放自定义对象实体类需要实现Comparable接口重写compareTo()方法定义排序规则 ——内置比较器。List 自带sort(Comparator c)方法可以传入Comparator接口匿名内部类 / Lambda实现排序 ——外置比较器。✨面试题集合实现排序使用Collections.sort(list)集合存放自定义实体类方式一实体实现Comparable重写compareTo内置比较器方式二调用 list.sort (Comparator) 传入外置比较器匿名内部类 / Lambda。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

软硬件一体化打造AI辅助刺绣系统:从架构设计到工程实践 2026/9/8 16:31:19

软硬件一体化打造AI辅助刺绣系统:从架构设计到工程实践

1. 项目立项思路:为什么非要组一支“软硬通吃”的队伍 这个项目,我最早接手时心里是打鼓的。原本以为是个传统刺绣设备的智能化改造,聊了几轮才发现,背后要做的事情远比“装个显示屏、换个电机驱动”复杂得多——它其实是一个典型…

阅读更多 →
新能源车辆车型大全API:从品牌到车系再到车型配置 2026/9/8 16:31:19

新能源车辆车型大全API:从品牌到车系再到车型配置

一、车型数据的特点汽车行业的数据有一个天然的结构特征——它是一个树状的层级体系。一辆车的身份不是单一维度,而是由多个层级叠加定义的:品牌(Brand)└── 车系(Series)└── 具体车型(Mod…

阅读更多 →
三相变压器电磁场与电路耦合仿真:COMSOL建模思路与工程技巧 2026/9/8 16:31:19

三相变压器电磁场与电路耦合仿真:COMSOL建模思路与工程技巧

先说明一点:这篇博文的价值在于“把计算逻辑讲透”,而不是演示一个能直接点跑的模型文件。COMSOL里三相变压器电磁场与电路耦合这个方向,模型本身不难,难的是理解“磁场算出来的是什么、电路送进去的是什么、中间靠什么互相传递信…

阅读更多 →
嵌入式启动全解析:MCU/SoC启动、RT-Thread初始化与OTA升级避坑指南 2026/9/8 16:31:19

嵌入式启动全解析:MCU/SoC启动、RT-Thread初始化与OTA升级避坑指南

作为嵌入式工程师,很多人干了两三年,业务代码写得飞起,但一碰到系统起不来、重启不定时、升级变砖这类问题就心里发怵。原因倒也不难理解:启动流程是整个固件运行的“第一性原理”,却恰恰是日常开发里最容易被忽视的部…

阅读更多 →
三菱FX5U四轴码垛机PLC控制:伺服步进混搭设计与参数配置 2026/9/8 16:31:19

三菱FX5U四轴码垛机PLC控制:伺服步进混搭设计与参数配置

前阵子做完一台三菱FX5U四轴自动码垛设备,程序里同时挂着松下伺服和步进电机,从原点回归、定位动作到报警处理全放进同一套PLC逻辑。客户的产线工位很挤,原本靠两个人弯腰搬箱上托盘,节拍一快就容易漏放错放,最后改用这…

阅读更多 →
Atmosphère 崩溃快速修复指南:3 步解决 RetroArch 0x4A8 数据中止报错 2026/9/8 16:28:18

Atmosphère 崩溃快速修复指南:3 步解决 RetroArch 0x4A8 数据中止报错

Atmosphre 崩溃快速修复指南:3 步解决 RetroArch 0x4A8 数据中止报错 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere 在 Atmosp…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞