随笔分类 -  容器

摘要:底层基于hashmap实现,构造函数中会new一个HashMap实例,hashset中的元素都放在hashmap中,key是元素本身,value为PRESENT,PRESENT定义:private static final object PRESENT = new Object(),允许null值, 阅读全文
posted @ 2023-02-11 15:53 MarkLeeBYR 阅读(62) 评论(0) 推荐(0) 编辑
摘要:LinkedHashMap是把HashMap和双向链表合二为一,它将所有entry节点放入一个双向链表的hashmap,其内部维持的顺序是元素插入的顺序,而且能实现lru算法。 下面是get方法的定义: public V get(Object key) { Entry<K,V> e = (Entry 阅读全文
posted @ 2023-02-10 17:37 MarkLeeBYR 阅读(26) 评论(0) 推荐(0) 编辑
摘要:ArrayList ArrayList和array的区别:前者可以存放任意对象(object的子类),后者只能存放同种元素。前者只能存放对象类型。后者可以存基本类型和对象类型。 ArrayList内部维护了一个动态的object数组,ArrayList的动态增删就是对这个数组的增加和删除。Array 阅读全文
posted @ 2023-02-10 17:30 MarkLeeBYR 阅读(79) 评论(0) 推荐(0) 编辑
摘要:jdk1.7 解析 HashMap在多线程环境下,put操作可能产生死循环,Hashtable是对读写加锁,独占式,一个线程在读时其他线程必须等待,性能低下。现在我们可以使用高性能的线程安全的ConcurrentHashMap。 ConcurrentHashMap采用分段锁的机制,实现并发的更新操作 阅读全文
posted @ 2023-02-10 15:58 MarkLeeBYR 阅读(278) 评论(0) 推荐(0) 编辑
摘要:HashMap源码解读 1、概述:是Map接口的非同步实现,允许使用null值和null健,对象是无序排列的这点和list接口相反。HashMap中有且只有一个key为null(key不能重复)。HashMap用到了几个类?Entry,keySet,entrySet,HashIterator(key 阅读全文
posted @ 2023-02-09 23:05 MarkLeeBYR 阅读(51) 评论(0) 推荐(0) 编辑
摘要:1、是List<E>, Queue<E>, Set<E>的父接口。 2、Comparable接口:可以认为是内比较器,当实现了这个接口,则表示这个类可以和自己比较大小,可以进行自然排序,如果一个类要实现这个接口,那必然要实现它的compareTo()方法。String, Integer等类实现了这个 阅读全文
posted @ 2023-02-09 20:02 MarkLeeBYR 阅读(23) 评论(0) 推荐(0) 编辑