
集合
文章平均质量分 87
水墨之白
悟已往之不谏,知来者之可追!
展开
-
ArrayList实现自定义排序
一、ArrayList排序使用ArrayList中存在sort排序方法,只要你实现了Comparator的接口,按照你自己的排序业务进行实现,你只要告诉这个接口按照什么类型进行排序就OK了。这种方式类似于设计模式中的策略模式,把流程划分好,具体的业务逻辑由用户指定代码实现:public class ComparatorTest { public static void main(St...原创 2019-12-11 19:45:04 · 3633 阅读 · 0 评论 -
关于集合遍历并删除报错详解
一、list集合正确删除list集合删除不要使用增强for,建议使用for(int i;;)这种方法,注意这种方法删除集合元素会导致索引前移导致遍历问题例如:private static void delFor() { List<String> blist = new ArrayList<>(); blist.add("a"); ...原创 2019-03-12 19:16:41 · 702 阅读 · 0 评论 -
深入理解HashMap
1. HashMap的概述HashMap的底层是由数组来实现的。数组里的元素可以为null,也可以是链表,还可以是红黑树。HashMap是一种支持快速存取的数据结构。HashMap是基于哈希表的 Map 接口的实现,以key-value的形式存在。2. HashMap在内存中的结构:数组里面存放的是Node对象,链表的头结点当链表长度达到8,...原创 2018-02-20 21:12:53 · 450 阅读 · 0 评论 -
手写HashMap
本文基于JDK1.7虽然很早之前看过hashMap源码,但是还是需要实战一下,手写了一个类似的HashMap,加深对集合类的理解。代码我加上了详细注释。问题:如何将元素放入数组对应位置? 即寻址过程不同元素在数组位置相同,发生冲突如何解决?数组容量不足,怎么扩容?搞清楚这三个问题,我们就可以很轻松完成自己的HashMap:自己写的Map,就简单点,不需要像源码那样考虑健壮性,只需...原创 2019-06-13 19:50:59 · 352 阅读 · 0 评论 -
手写ArrayList
一、 数组复制方法System.arraycopy()public static native void arraycopy(Object src, int srcPos, Object dest, int destPos,int length);src - 源数组。srcPos - 源数组中的起始位置。dest - 目标数组。destPos - 目标数据中的起始位置。length...原创 2019-06-15 15:24:28 · 247 阅读 · 0 评论