11 2022 档案
摘要:linkedlist 既实现了 list 接口,又实现了 queue, deque 接口, 底层用链表数据结构,便于增删元素和顺序迭代 arraydeque 实现了 queue和deque接口 , 底层用数组实现,便于查找 arraylist 实现list接口,底层为数组
阅读全文
摘要:这种方式有问题的,因为 o1 - o2 可能使整型溢出,导致排序结果异常 : Arrays.sort(input, (o1,o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]); 应该把 减法运算改为比较运算: Arrays.sort(inpu
阅读全文
摘要:public class MyComparator<Integer> implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2){ // o1 代表前一个元素, o2代表后一个元素 //返
阅读全文
摘要:1. 如果方法体为表达式,算式 , 可以不加大括号 Arrays.sort(startEnd, (o1,o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]); 2. 如果要加大括号,则必须是完整的语句, 需要有 “return ”关键字, 语句
阅读全文
摘要:1. 使用list, 调整的时候list可以删除尾部的元素 ArrayList<Integer> list = (ArrayList<Integer>)Arrays.stream(a).boxed().collect( Collectors.toList()); //大根堆 buildHeap(li
阅读全文
摘要:方法一: spring aop 通过spring aop 配置需要扫描的包,配置切点切面,在切点前后获取方法的注解,如果有限流器注解则调用注解参数对应的限流器 方法二: javaagent + javassist/cglib 基于javaagent来进行类加载事件监听和行为触发,基于javassis
阅读全文
摘要:默认的str.split("xx") , 如果xx为正则特殊字符比如 “.” 需要转义“\\.” 默认的 str.split("xx") 在jdk代码 底层传入 split(regex,0) 其中第二个参数 0 代表丢弃空值的子字符串, -1 代表保留空值的子字符串, 其它正整数表示输出字符串数组的
阅读全文
摘要:java String 类型为Final, 字符串操作后直接返回新的字符串,原字符串对象没有变
阅读全文
摘要:因为堆结构只保证 根节点比双子节点都大或小 1 求最小的n个数: 构建n个数的大顶堆,依次弹出堆顶再往下调整(用例省略) 2 求最大的n个数: 构建n个数的小顶堆,依次弹出堆顶再往下调整(用例省略) 3 求第n大的数: 构建所有元素的大顶堆,依次弹出堆顶,堆底放到堆顶并向下调整,重复n次 用例: p
阅读全文
摘要:1 左右哨兵等于pivot的情况要接着走,不然有可能一直不动,无限循环 2 需要先走右指针再走左指针,因为pivot在最左侧,最终停留点应该比pivot小,这样交换后小的在前; 如果左侧先走,最终停留点比pivot大 3 迭代下一轮循环的时候,不要包括相遇点,因为这个点前面都比它大,后面都比它小,不
阅读全文
摘要:private void buildHeap(int[] h) { int l = h.length; //这里需要从下向上调整,因为从上向下调整只能让最小值下到底端,只有从下向上调整可以让最大值上到顶端 //shiftDown需要递归,如果不递归,这里只能保证最大的元素在堆顶,但是不能保证子分支都
阅读全文
摘要:堆是 完全二叉树, 不一定是满二叉树, 可以用数组存放(普通二叉树只能用带指针的链表) i 节点的父节点 下标为 i/2 , 子节点下标为 2i , 2i+1 , 二叉树高度或深度为 logN+1(计算机领域底数为2)
阅读全文
摘要:PriorityQueue的底层实现是 堆, 默认为最小堆: PriorityQueue<Integer> q = new PriorityQueue<>(); 最大堆初始化: PriorityQueue<Integer> q = new PriorityQueue<>((o1, o2)->o2.c
阅读全文
摘要:stack底层为数组, foreach和iterator迭代时遍历数组输出, public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializabl
阅读全文
摘要:1. ArrayList[] result = new ArrayList[len]; 数组泛型类型erase, 不能定义泛型数组 2. Arrays.asList(result) 返回的不是ArrayList类型,而是一个内部类 所以需要用ArrayList包装 new ArrayList<>(A
阅读全文
浙公网安备 33010602011771号