随笔分类 -  Java / 集合框架

摘要:TreeMap 由红黑树实现,可以保持元素的自然顺序,或者实现了 Comparator 接口的自定义顺序 红黑树(英语:Red–black tree)是一种自平衡的二叉查找树(Binary Search Tree),结构复杂,但却有着良好的性能,完成查找、插入和删除的时间复杂度均为 log(n)。 阅读全文
posted @ 2024-07-13 23:20 _Sylvan 阅读(45) 评论(0) 推荐(0)
摘要:继承自 Vector,是线程安全的 在 Java 中,推荐使用 ArrayDeque 来代替 Stack,因为 ArrayDeque 是非线程安全的,性能更好 push public E push(E item) { addElement(item); return item; } 调用了 Vect 阅读全文
posted @ 2024-07-13 23:20 _Sylvan 阅读(22) 评论(0) 推荐(0)
摘要:PriorityQueue 是 Java 中的一个基于优先级堆的优先队列实现,它能够在 O(log n) 的时间复杂度内实现元素的插入和删除操作,并且能够自动维护队列中元素的优先级顺序。 // 传入比较器 PriorityQueue<String> priorityQueue = new Prior 阅读全文
posted @ 2024-07-13 23:19 _Sylvan 阅读(41) 评论(0) 推荐(0)
摘要:![](https://img2024.cnblogs.com/blog/1900828/202407/1900828-20240713231926347-1764342020.png) 阅读全文
posted @ 2024-07-13 23:19 _Sylvan 阅读(15) 评论(0) 推荐(0)
摘要:静态内部类Node private static class Node<E> { E item; // 双向链表 Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element 阅读全文
posted @ 2024-07-13 23:19 _Sylvan 阅读(37) 评论(0) 推荐(0)
摘要:HashMap 是无序的,LinkedHashMap 是可以维持插入顺序的 LinkedHashMap 继承了 HashMap,内部追加了双向链表,来维护元素的插入顺序 // LinkedHashMap.Entry 继承了 HashMap.Node static class Entry<K,V> e 阅读全文
posted @ 2024-07-13 23:18 _Sylvan 阅读(49) 评论(0) 推荐(0)
摘要:Java遍历List有三种方式 public static void main(String[] args) { List<String> list = new ArrayList<>(); // for循环 for (int i = 0; i < list.size(); i++) { Syste 阅读全文
posted @ 2024-07-13 23:18 _Sylvan 阅读(30) 评论(0) 推荐(0)
摘要:HashMap 的实现原理是基于哈希表的,它的底层是一个数组,数组的每个位置可能是一个链表或红黑树,也可能只是一个键值对。当添加一个键值对时,HashMap 会根据键的哈希值计算出该键对应的数组下标(索引),然后将键值对插入到对应的位置。 当通过键查找值时,HashMap 也会根据键的哈希值计算出数 阅读全文
posted @ 2024-07-13 23:17 _Sylvan 阅读(81) 评论(0) 推荐(0)
摘要:for-each删除元素报错 public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("haha"); list.add("xixi"); list.add("hehe"); f 阅读全文
posted @ 2024-07-13 23:16 _Sylvan 阅读(36) 评论(0) 推荐(0)
摘要:Comparable 实现了 Comparable 接口,重写 compareTo() 方法,就可以按照自己制定的规则将由它创建的对象进行比较 public interface Comparable<T> { // 返回值可能为负数,零或者正数,代表的意思是该对象按照排序的规则小于、等于或者大于要比 阅读全文
posted @ 2024-07-13 23:16 _Sylvan 阅读(32) 评论(0) 推荐(0)
摘要:创建ArrayList 不指定初始大小 List<String> list = new ArrayList<>(); 调用无参构造方法,创建一个初始容量为10的空列表 private static final int DEFAULT_CAPACITY = 10; private static fin 阅读全文
posted @ 2024-07-13 23:15 _Sylvan 阅读(59) 评论(0) 推荐(0)
摘要:ArrayDeque 又实现了 Deque 接口(Deque 又实现了 Queue 接口) public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable {} 阅读全文
posted @ 2024-07-13 23:14 _Sylvan 阅读(37) 评论(0) 推荐(0)
摘要:集合框架 和数组区别 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型- Collection接口:无下标 List接口:有序、有下标、元素可重复 ArrayList类 LinkedList类 Vector类 Set接口:无序、无下标、元素不重复 HashSet类 阅读全文
posted @ 2021-03-24 21:54 _Sylvan 阅读(30) 评论(0) 推荐(0)