随笔分类 - java基础
摘要: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 ”关键字, 语句
阅读全文
摘要:默认的str.split("xx") , 如果xx为正则特殊字符比如 “.” 需要转义“\\.” 默认的 str.split("xx") 在jdk代码 底层传入 split(regex,0) 其中第二个参数 0 代表丢弃空值的子字符串, -1 代表保留空值的子字符串, 其它正整数表示输出字符串数组的
阅读全文
摘要:java String 类型为Final, 字符串操作后直接返回新的字符串,原字符串对象没有变
阅读全文
摘要: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
阅读全文
摘要:add 添加, remove 删除和返回, element 检索和返回 会抛出异常 offer 添加, poll 删除和返回, peek 检索和返回 会返回值
阅读全文
摘要:byte 8bit short 16bit int 32bit long 64bit char 16bit float 32bit double 64 boolean 理论上占用1bit,实际处理按1byte处理
阅读全文
摘要:二维数组转list list = Arrays.stream(res).map(x -> { return Arrays.stream(x).boxed().collect(Collectors.toList()); }).collect(Collectors.toList()); return l
阅读全文
摘要:java 参数传递为值传递 如果参数为 对象, 传递的是对象地址的副本,但是地址副本和原地址都指向堆中同一个对象,所以方法中对对象的修改影响到方法外 如果参数为 值 , 传递的是值的副本, 方法内的修改不影响 原值 但是不管是 地址的副本,还是值的副本,方法中的修改都不影响 原地址和原值。
阅读全文
浙公网安备 33010602011771号