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