
java集合部分
卓立苍穹
要保持乐观,积极,要乐于帮助别人,助人及助己
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hashmap初探
1、特点 (1)、插入无序 (2)、 以键值对<k,v>的形式储存 (3)、键不能重复,如果重复,新的值会覆盖旧的值; 如果是自定义元素,必须重写hashcode方法和equals方法 (4)、键可以为有一个为null,值可以多个为null; 特定:键为null的元素放在数组0号位置; (5)、底层数组的容量为2的指数级 2、 数据结构: 数组+链表 核心就是使用了数组的存储方式,然后...原创 2019-04-21 13:55:03 · 193 阅读 · 0 评论 -
LinkedList
1、特点: 重复性:数据可以重复 null值:有 有序性:保证数据插入有序; 插入删除效率高、访问效率低 2、底层源码研究: 底层数据结构:双向链表 构造函数: 基本属性:头结点,尾节点,size 、内部节点类node; 默认值: 无 扩容方式: 链表式扩容 增删改查方法: 删除节点时得判断此节点的位置(头部,中间,尾部) 3、部分重点方法介绍: LinkedList(Collection &...原创 2019-04-19 22:25:56 · 237 阅读 · 0 评论 -
集合---ArrayList
一、目的:研究ArrayList的实现 1.特点: 重复性:数据可以重复 null值:可以有null值存在 有序性:保证数据插入有序; 访问效率高、移动 删除效率低 2. 研究源码问题: 底层数据结构:数组 构造函数: 基本属性:Objtct数组 默认值: 数组初始值为10 扩容方式: 1.5倍扩容,相关方法:ensureCapacity(); 增删改查方法: remove();方法中利用Syst...原创 2019-04-19 22:24:58 · 115 阅读 · 0 评论 -
比较器的使用
比较器:comparator 和comparable的使用; comparator 的使用: 直接创建comparator对象,然后使用匿名内部类重写comapre方法; TreeSet<Integer> t = new TreeSet(new Comparator<Integer>() { @Override public int compare(Inte...原创 2019-04-22 16:52:56 · 298 阅读 · 0 评论 -
PriorityQueue
优先级队列: PriorityQueue 1、特点: 不能添加null元素 可重复 默认构建的是小顶堆 2、应用场景: 查找数据中前100大的数据; 查找数据中前100小的数据; 3、数据结构:object[ ]数组 大根堆,小根堆 4、底层源码分析: (1)继承关系: 继承:AbstractQueue 实现: java.io.Serializable (2)构造函数: int newCap...原创 2019-04-21 14:10:57 · 392 阅读 · 0 评论 -
hashSet初探
1、特点: 存储的是单个值 值不能重复、 可有一个null、 键有序(访问有序、插入有序) 自动去重:底层调用的是HashMap,所以元素不能重复 如果是自定义元素,必须重写hashcode方法和equals方法; 2、数据结构:底层使用HashMap实现 探究:HashSet的单个值如何存储到hashMap中去: 源码如下 public boolean add(E e) { re...原创 2019-04-21 14:08:55 · 232 阅读 · 0 评论 -
TreeMap初探
1、特点: 可以对键进行自然排序或指定排序 <<<<<<<<主要特点 2、数据结构: 红黑树 基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 红黑树的特性: (1)每个节点或者是黑色,或者是红色。 (2)根节点是黑色。 (...原创 2019-04-21 14:07:13 · 196 阅读 · 0 评论 -
WeakHashMap初探
1、特点: 随着时间的推移,其中的元素会被垃圾回收器回收 2、涉及到的4中引用: 强引用:(StrongReference) 就是指在程序代码之中普遍存在的,例如以下代码: Object object = new Object(); String str = "hello"; 强引用关联的对象在内存不够时也不会被垃圾回收器回收, 回收时间:当前对象为null时被回收; 软引用:(SoftRefe...原创 2019-04-21 14:06:02 · 215 阅读 · 0 评论 -
LinkedHashMap
1、特点: (1)、键有序:可选插入有序或者访问有序 《《《《《主要特点:默认插入有序 (2)、以键值对<k,v>的形式储存 (3)、键不能重复,如果重复,新的值会覆盖旧的值; (4)、键可以为有一个为null,值可以多个为null; 特定:键为null的元素放在数组0号位置; (5)、底层数组的容量为2的指数级 2、数据结构:数组+链表 底层虽然使用的仍然是数组+链表。可是L...原创 2019-04-21 14:02:45 · 217 阅读 · 0 评论 -
hashtable初探
1、特点: (1)、线程安全 使用的是synchronized关键字,给hashTable对象加互斥锁; (2)、 以键值对<k,v>的形式储存 (3)、键和值都不能为null; (4)、插入无序 2、数据结构:数组+链表 3、底层源码分析: (1)继承关系: 继承 Dictionary<K,V> , 实现了 Map<K,V>, Cloneable, ja...原创 2019-04-21 14:00:02 · 188 阅读 · 0 评论 -
Iterator和LlistIterator迭代器的使用及底层原理:
1, Iterator: (1). 使用 hasNext();返回一个boolearn值,判断有没有下一个 next();返回游标当前的指向对象,并且将游标指向下一个对象 remove();删除游标左面的元素,在next执行完之后该操作只能执行一次 注意点: remove()使用之前必须要调用next()方法,而且remove()方法不能连续出现 //使用while实现迭代集合 Iterator&...原创 2019-04-19 22:29:42 · 771 阅读 · 0 评论