码农每日一题
长按关注置顶
工作日每天推送一个短小精干的技术知识点,让您可以随时查漏补缺。
问:说说你对 TreeSet 与 HashSet 的理解?
答:HashSet 是基于 HashMap 实现的,TreeSet 是基于 TreeMap 实现的,而 TreeMap 是一个有序的二叉树,所以 TreeSet 也是一个有序的二叉树,其提供有序的 Set 集合。
此外 HashSet 不能保证集合的迭代顺序且允许使用 null 元素,同时还不是并发安全的。而 TreeSet 可以保证集合元素迭代有序,但是元素必须实现 Comparable 接口或 Comparator 接口来保证排序,此外其元素不能为 null,同时该集合也是非并发安全的。
既然 TreeSet 与 TreeMap 有关,Map 与 Set 又不分家,所以给出这些容易混淆却又各具特色的历史推送题目来复习查漏:
《[文末调查] Java 1.7 中 HashMap 扩容相关的两个经典问题》
《JDK 1.8 中 HashMap 扩容骚操作的变化问题》
放松一下,顺带评论点赞分享一波~
奶奶给孙子发信息说:你快躲起来吧,你老师因为你逃学,来家里找你了。孙子说:奶奶你快躲起来吧!我今天给老师打电话请假,说奶奶过世,所以不去上学了。这时奶奶已经给老师开门了。老师:您是?奶奶:今天头七,我回来看看。