合肥万户网站建设,wordpress预览效果不一样,施工企业怎样报考a证,响应式网站设计建设制作一、Java集合面试题
1.LinkedHashMap底层原理#xff1f;
HashMap是无序的#xff0c;迭代HashMap所得到元素的顺序并不是它们最初放到HashMap的顺序#xff0c;即不能保持它们的插入顺序。
LinkedHashMap继承于HashMap#xff0c;是HashMap和LinkedList的融合体#x…一、Java集合面试题
1.LinkedHashMap底层原理
HashMap是无序的迭代HashMap所得到元素的顺序并不是它们最初放到HashMap的顺序即不能保持它们的插入顺序。
LinkedHashMap继承于HashMap是HashMap和LinkedList的融合体具备两者的特性。每次put操作都会将entry插入到双向链表的尾部
2.讲一下TreeMap
TreeMap是一个能比较元素大小的Map集合会对传入的key进行了大小排序。可以使用元素的自然顺序也可以使用集合中自定义的比较器来进行排序。
TreeMap的特点
TreeMap是有序的key-value集合通过红黑树实现。根据键的自然顺序进行排序或根据提供的Comparator进行排序。TreeMap继承了AbstractMap实现了NavigableMap接口支持一系列的导航方法给定具体搜索目标可以返回最接近的匹配项。如floorEntry()、ceilingEntry()分别返回小于等于、大于等于给定键关联的Map.Entry()对象不存在则返回null。lowerKey()、floorKey、ceilingKey、higherKey()只返回关联的key。
3. HashSet底层原理
HashSet 基于 HashMap 实现。放入HashSet中的元素实际上由HashMap的key来保存而HashMap的value则存储了一个静态的Object对象。
public class HashSetEextends AbstractSetEimplements SetE, Cloneable, java.io.Serializable {static final long serialVersionUID -5024744406713321676L;private transient HashMapE,Object map; //基于HashMap实现//...
}4.HashSet、LinkedHashSet 和 TreeSet 的区别
HashSet 是 Set 接口的主要实现类 HashSet 的底层是 HashMap线程不安全的可以存储 null 值
LinkedHashSet 是 HashSet 的子类能够按照添加的顺序遍历
TreeSet 底层使用红黑树能够按照添加元素的顺序进行遍历排序的方式可以自定义