java
xxaxtt
这个作者很懒,什么都没留下…
展开
-
Java中PriorityQueue的陷阱
PriorityQueue增加元素时,并不能使整个数列是有序的,只能保证队首元素是最大值或最小值,其它是乱序的。删除队首元素时,会更新新队首元素。测试代码如下 @Test public void test4() { PriorityQueue<Integer> que = new PriorityQueue<>((a1, a2) -> { return a2 - a1; }); que.offe原创 2021-04-13 10:13:22 · 221 阅读 · 0 评论 -
java堆排序
参考Java实现堆排序和图解java学习笔记之优先队列实现原理疑问堆排序的时间复杂度?原创 2021-01-12 16:14:07 · 92 阅读 · 0 评论 -
java常见疑问收藏
参考Java数组转List的三种方式及对比java快速寻找一个数组的最大值或最小值, min, max,三种方法原创 2021-01-03 11:57:53 · 67 阅读 · 0 评论 -
二叉树的前、中、后序遍历统一写法
参考帮你对二叉树不再迷茫,彻底吃透前中后序递归法(递归三部曲)和迭代法(不统一写法与统一写法)二叉树的前、中、后序遍历(递归与非递归)算法通过插入标志符,来标记需要输出哪个元素。确定输出顺序。首次遍历结点A时,将A和其左右子结点按照遍历顺序插入到栈中,A结点后需要插入标志符。输出结点元素。如果当前栈顶元素是标志符,说明A结点该输出了,输出A结点即可。参考博文1中,用null作为标志符,这在要求输出空结点时不可行,标志符和空结点会发生冲突。要解决冲突,只需自定义标志即可。前序遍历pu原创 2020-12-15 12:59:35 · 219 阅读 · 0 评论 -
java中LinkedList.push的陷阱
结论使用LinkedList时,尽量使用addLast和addFirst。不要使用push,会和预期不一致。如果要使用push,建议使用Stack。测试先看下面一段LinkedList.push代码, LinkedList<Integer> deque = new LinkedList<>(); deque.push(1); deque.push(2); System.out.println("LinkedList push:原创 2020-12-04 22:27:22 · 978 阅读 · 2 评论 -
java位运算
参考java位运算究竟有用么?java位运算20个位运算技巧原创 2020-12-02 13:30:29 · 80 阅读 · 0 评论 -
java初始化方法总结
数组ListSetMap原创 2020-11-16 15:33:40 · 753 阅读 · 0 评论 -
java优先队列
默认顺序时,队首元素是最小值。对整数,如{1,2},队首元素是1。对字符串,如{“A”, “B”},队首元素是"A"。字典序中,数字在字面前面,大写在小写前面,a在b前面。这时按照字符在ASCII码中的顺序,详见最全的ASCII码对照表。测试代码System.out.println("1".compareTo("A"));//-16,数字在字面前面System.out.println("A".compareTo("a")); //-32, 大写在小写前面System.out.print.原创 2020-10-30 22:13:54 · 191 阅读 · 0 评论 -
java的坑:判断String相等要用equals,不能用==
下面代码测试了String的equals()和==。从实际输出看到,equals()始终能给出正确结果,而==有时会给出错误结果。 public static void test1() { String s; s = ")"; System.out.println("s=" + s); System.out.println(s == ")"); System.out.println(s.equals(")"));原创 2020-10-30 16:44:25 · 764 阅读 · 0 评论