首页
学习
活动
专区
工具
TVP
发布

来自地球男人的部落格

专栏作者
60
文章
63741
阅读量
33
订阅数
[LeetCode] 82. Remove Duplicates from Sorted List II
该文讲述了如何删除排序链表中的重复节点,并保留非重复节点。通过先构建一个虚拟头节点来处理头结点,然后遍历链表,如果当前节点和下一个节点的值相同,则删除当前节点,否则将当前节点和下一个节点连接起来。遍历结束后,返回虚拟头节点的下一个节点即可。该解法使用了递归和虚拟头节点,具有较高的效率和可读性。
用户1148830
2018-01-04
6510
Comparison method violates its general contract!
本文讨论了解决LeetCode题目中使用HashMap按照value排序的问题。原比较器的写法使用了自定义比较器,违反了比较器的一般约定。在正确写法中,比较器直接比较Map中的值。这个改变是为了遵循Java 7的排序规则。
用户1148830
2018-01-03
2.1K0
关于Java中Stack类的使用
为什么不用Stack类?\n\n《Java编程思想》第四版一书中明确不建议我们使用java.util.Stack类,一直保留只是为了兼容以前的版本,在17.13.3中提到了原因。主要是因为:\n\nStack类是继承自Vector类,而不是使用Vector来实现Stack,这就产生了一个问题,Vector上可以使用的方法Stack类都可以使用,所以很容易破坏栈应有的规则。在本书的11.8中提到建议使用LinkedList实现栈。\n\nPS:Stack是为了专门实现栈而创建的类,作者在文中也提到“竟然不是用Vector来构建Stack,而是继承Vector”,可见作者也认为额外的操作是使用Stack类所不能容忍的。但这和建议使用LInkedList不能同一看待,因为一个是专用类,而另外一个是建议实现Stack的一种手段(不能因为可以实现Stack而不能有其他的操作,LinkedList毕竟不是为了Stack而生)。\n\n- 为什么不用Vector类?\nVector由于是线程安全的,所以在单线程的时候效率会叫ArrayList更低。在Java 1.2 出现ArrayList之后基本上就使用起来代替Vector。在多线程中ArrayList可以使用Collectiuons.synchronized方法来保证多线程环境下的安全使用。在本书17.13.1中提到另一个原因就是又长又难记的方法名。
用户1148830
2018-01-03
1.4K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档