HashMap了解吗? HashMap底层数据结构:数组+链表+红黑树 允许put null值,HashMap在调用hash算法时,如果key为null,那么hash值为0,这一点和HashTable和ConcurrentHashMap有所不同。 (key == null) ? 0:(h=key.hashCode()) ^ (h >>> 16); loadFactor:负载因子,默认为0.75,时均衡了时间和空间损耗计算出来的,较高的值会减少空间的开销,扩容减少,数组大小增加速度变慢,但是查找成本…

2021年4月21日 0条评论 4点热度 阅读全文

线程是否安全 1.HashMap 是非线程安全的,HashTable 是线程安全的;HashTable 内部的方法基本都经过 synchronized 修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap 吧!); 效率 2.因为线程安全的问题,HashMap 要比 HashTable 效率高一点; 对Null key 和Null value的支持 3 HashMap 中,null 可以作为键,这样的键只有一个,可以有一个或多个键所对应的值为 null。但是在 HashTable 中 put …

2021年4月20日 0条评论 4点热度 阅读全文

  上一篇ArrayList基础知识必知必会  本篇文章的很多内容可以参数上篇文章   微信扫码关注   1、如何复制某个ArrayList到另一个ArrayList中去?写出你的代码? 使用clone()方法,比如ArrayList newArray = oldArray.clone(); 使用ArrayList构造方法,比如:ArrayList myObject = new ArrayList(myTempObject); 使用Collection的copy方法。 &nb…

2021年3月13日 0条评论 15点热度 阅读全文

一、 list ArrayList ArrayList底层结构采用Object 数组,支持随机访问,而LinkedList底层结构采用双向链表,不支持随机访问。数组的插入和删除元素会受到元素位置的影响:当插入或者删除元素在末尾时,时间复杂度为O1,但是在其他位置是On,但是链表一般都是O1。在内存空间的占用上:数组会有一定的预留空间,并进行扩容,而链表则是每个元素的大小比数组的大。 默认在第一次插入元素的时候数组大小为10,当容量不足时,容器自动扩容1.5的容量。 数组的复制: ArrayList的实现中大量地调用…

2021年3月5日 0条评论 30点热度 阅读全文

hashMap 面试遇到的一些总结,欢迎大家来交流。 注: 看hashMap源码需要了解:二进制运算符号 1、位异或运算(^):二进制运算,如果相同则为0,不相同则为1 2、 位与运算符(&):二进制运算,如果两个数都为1则为1,否则为0 3、位或运算符(|):二进制运算,如果两个数有一个为1则为1,否则为0 4、位非运算符(~):如果位为0,结果是1,如果位为1,结果是0 5、 << 、>> 带符号移动 6、>>> 无符号右移:注意 没有无符号左移! 1、Hash…

2021年3月3日 0条评论 18点热度 阅读全文

1:使用Arrays.asList的注意事项 1:arrays.asList返回的arrayList不是我么平时所用的arrayList(平时用到在java.util包下的)这个arrayList是arrays的内部类,它也继承AbstractList,重写了很多方法,比如contains方法 但是确没有重写add方法,所以在调用的时候会报UnsupportedOperationException。所以使用工具类Arrays.asList把数组转化为集合时,不能使用修改集合相关的方法。它的 add/remove/c…

2021年2月26日 0条评论 14点热度 阅读全文

1:使用Arrays.asList的注意事项 1:arrays.asList返回的arrayList不是我么平时所用的arrayList(平时用到在java.util包下的)这个arrayList是arrays的内部类,它也继承AbstractList,重写了很多方法,比如contains方法 但是确没有重写add方法,所以在调用的时候会报UnsupportedOperationException。所以使用工具类Arrays.asList把数组转化为集合时,不能使用修改集合相关的方法。它的 add/remove/c…

2021年2月26日 0条评论 24点热度 阅读全文

转自:https://www.cnblogs.com/chengxiao/p/6059914.html   哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。 目录   一、什么是哈希表   二、HashMap实现原理…

2021年1月16日 0条评论 40点热度 阅读全文

查看源码: /** * Increases the capacity to ensure that it can hold at least the * number of elements specified by the minimum capacity argument. * * @param minCapacity the desired minimum capacity */ private void grow(int minCapacity) { // overflow-conscious code i…

2021年1月16日 0条评论 35点热度 阅读全文

  Java List是一个有序集合。Java List是扩展Collection接口的接口。Java List提供对可插入元素的位置的控制。您可以按索引访问元素,也可以搜索列表中的元素。 目录 Java列表 Java列表类图 Java列表方法 要列出的Java数组 Java List to Array Java列表排序 Java列表常见操作 Java List迭代器 Java List 关于Java List的一些重要观点是; Java List接口是Java Collections Framework…

2021年1月16日 0条评论 27点热度 阅读全文