集合

浏览该分类下的所有文章

面试现场【List篇】

List是Java集合接口,常用实现ArrayList(数组,查询快,容量不足时按1.5倍扩容)和LinkedList(链表,增删快)。ArrayList适合读多写少,LinkedList适合写多读少。List可重复有序,Set不重复无序且基于Map。Vector已少用,线程安全List可用Collections.synchronizedList或CopyOnWriteArrayList;后者写时复制实现并发读,但占内存多且读到旧数据。排序用list.sort或Collections.sort,遍历删除用Iterator.remove或list.removeIf避免fast‑fail。

LinkedList常用API详解

本文系统梳理了 Java LinkedList 常用 API 的功能与实现细节,重点包括:peek/peekFirst/peekLast 用于获取头、首、尾元素但不删除;poll/pollFirst/pollLast 用于获取并删除相应元素;offer/offerFirst/offerLast 用于在链表尾部、头部或末尾插入新元素。文中通过示例代码演示了这些方法的调用顺序及运行结果,直观展示了 LinkedList 在元素访问、删除和添加方面的行为,帮助读者快速掌握其常用操作。

集合工具类Collections详解

Collections 是 JDK java.util 包下的集合工具类,提供一系列静态方法,帮助对 List、Collection 等进行排序(reverse、shuffle、sort、swap)、查找(binarySearch、max、min、frequency)、填充(fill)等常用操作。它还能通过 synchronizedXxx 返回线程安全的包装集合,避免 ArrayList、HashMap 的并发问题;提供 empty、singleton、unmodifiable 等创建不可变集合的工厂方法;以及 addAll、disjoint 等实用工具。文章通过代码实例演示了这些方法的使用效果,并指出应深入源码了解实现细节,使用 Collections 能提升编码水平,避免自行实现低效代码。

List去除重复数据的五种方式

本文介绍了在Java中对ArrayList去重的五种实现方式:①利用LinkedHashSet既去重又保序;②Java 8 Stream的distinct()配合collect;③通过HashSet判断并手动保持顺序;④遍历列表并用contains检测防止重复;⑤使用双层for循环逐一比较并删除。每种方法均附有代码示例并说明其特点。