Java集合容器
文章平均质量分 70
集合
一蓑烟雨任平生2024
这个作者很懒,什么都没留下…
展开
-
史上最全HashMap面试题汇总
1.HashMap的数据结构?哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。当链表长度超过8时,链表转换为红黑树。2.HashMap的工作原理?HashMap底层是hash数组和单向链表实现,数组中的每个元素都是链表,由Node内部类(实现Map.Entry<K,V>接口)实现,HashMap通过put&get方法存储和获取。存储对象时,将K/V键值传给put()方法: ①、调用hash(K)方法计算K的hash值,然后结合数组长度,计算得数组下标;转载 2020-07-13 19:44:14 · 22670 阅读 · 13 评论 -
Java-集合容器常见面试题
注:层次关系:实线边框为实现类,折现边框是抽象类,点线边框的是接口Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。Map不能包含重复的key,但是可...原创 2020-06-10 11:11:04 · 662 阅读 · 1 评论 -
Java Map集合的遍历
Map<String,String> map = new HashMap<String,String>(); map.put("1","aaa"); map.put("2","bbb"); map.put("3","ccc"); /* *说明:根据阿里开发手册,不建议使用这种方式, *因为迭代两次。keySet获取Iterator一次, *还有通过get又迭代一次,降低性.原创 2021-05-12 21:01:11 · 126 阅读 · 0 评论 -
CopyOnWriteArrayList源码解读
CopyOnWriteArrayList-源码原创 2020-10-25 22:23:50 · 110 阅读 · 0 评论 -
jdk1.8HashMap的优化
由 数组+链表 的结构改为数组+链表+红黑树。 拉链过长会严重影响hashmap的性能,所以1.8的hashmap引入了红黑树。 在链表元素数量超过8时改为红黑树,少于6时改为链表,中间7不改是避免频繁转换降低性能。 相对于链表,改为红黑树后碰撞元素越多查询效率越高。链表O(n),红黑树O(logn)。 优化了高位运算的hash算法:h^(h>>>16) 将hashcode无符号右移16位,让高16位和低16位进行异或。 扩容resize后,元素要么是在原位置,要么是在原位置.原创 2020-10-21 22:29:33 · 1191 阅读 · 0 评论 -
LinkedHashMap原理
LinkedHashMaphttps://www.jianshu.com/p/8f4f58b4b8abTreeMaphttps://segmentfault.com/a/1190000014345983https://www.cnblogs.com/LiaHon/p/11221634.html原创 2020-10-18 22:01:11 · 149 阅读 · 0 评论 -
String字符串逆转
package String;import java.util.Stack;/** * @author root * @Description: * @Package String * @date 2020/10/10 14:43 */public class ReverseString { public static void main(String[] args) { String str = "ABC123"; reverse1(str);.原创 2020-10-10 19:58:53 · 504 阅读 · 0 评论 -
HashTable、ConcurrentHashMap为何不支持null键和null值
首先我们先运行一个例子来分析从例子中可以发现,hashmap毋庸置疑可以存储null键值对,hashtable和ConcurrentHashMap不可以存储null键值对,并且null值,null也不可以单独存储,其原因剖析源码如下:1.HashTable2.ConcurrentHashMap从分析中我们可以看到,hashtable,对于null值会抛出异常,而对于null键,则会调用null.hashCode(),而导致空指针异常,而concurrenthashmap则对于null键值对,.原创 2020-09-29 15:29:53 · 3336 阅读 · 0 评论 -
List集合遍历的几种方法
public class Test { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("好好学习"); list.add("天天向上"); list.add("不做码农"); //1.增强for// .原创 2020-09-16 22:39:42 · 1317 阅读 · 0 评论 -
List集合能放进Map集合吗?
List into Mappackage list_into_map;import java.awt.image.Kernel;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * list 集合放在map中 * @author root * @version V1.0 * @Package list_into_map * @da原创 2020-09-09 20:11:12 · 4946 阅读 · 0 评论 -
List集合去重的五种方法
package list_distinct_test;import java.util.*;import java.util.stream.Collectors;/** * @author root * @version V1.0 * @Package list_distinct_test * @date 2020/9/6 17:32 */public class ListTest { public static void main(String[] args) { .原创 2020-09-06 21:05:30 · 4619 阅读 · 0 评论 -
List集合去重的三种方法
在实际开发的时候,我们经常会碰到这么一个困难:一个集合容器里面有很多重复的对象,里面的对象没有主键,但是根据业务的需求,实际上我们需要根据条件筛选出没有重复的对象。比较暴力的方法,就是根据业务需求,通过两层循环来进行判断,没有重复的元素就加入到新集合中,新集合中已经有的元素就跳过。操作例子如下,创建一个实体对象PenBean,代码如下:/***笔实体*/publicclassPenBean{/**类型*/privateStringtype;...转载 2020-08-18 19:47:11 · 14354 阅读 · 2 评论