![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 集合
文章平均质量分 64
Java 集合
DAIHAO丶
一花一世界,一树一菩提。
展开
-
Java初始化List及异常java.lang.UnsupportedOperationException
后对其进行添加,修改等操作时会抛出异常,这是因为生成的。是否支持修改操作,可以转为可修改类型再操作。类型默认不支持请求的操作。原创 2022-11-01 10:08:39 · 237 阅读 · 0 评论 -
Java集合
集合可以动态地把多个对象的引用存储起来的容器。特点:1.集合只能储存对象2.集合是不需要指定长度3.集合中可以存放任意类型的对象(不指定泛型的情况下)集合与数组的区别长度区别数组固定集合可变内容区别数组可以是基本类型,也可以是引用类型集合只能是引用数据元素内容数据只能存储同一类型集合可以存储不同类型(其实集合一般存储的也是同一种类型)Java集合体系Java集合可分为Collection和Map两种体系Collection接口:Set 和 ListMap接口:具有原创 2021-06-20 10:43:19 · 130 阅读 · 0 评论 -
学不会的HashMap(二)
学不会的HashMap(一)插入HashMap插入数据简单来说就是通过你的Key值取得哈希再计算下标,之后把相应的数据存放到里面。疑问如果出现哈希值计算的下标碰撞了怎么办如果碰撞了是扩容数组还是把值存成链表结构,让一个节点有多个值存放呢如果存放的数据的链表过长,就失去了散列表的性能了,怎么办呢?如果想解决链表过长,什么时候使用树结构呢,使用哪种树呢?HashMap插入数据流程图具体如下;1、首先进行哈希值的扰动,获取一个新的哈希值。(key == null) ? 0 : (h =原创 2020-10-23 13:58:33 · 194 阅读 · 0 评论 -
Java集合中对象的复制-浅拷贝、深拷贝
文章目录浅拷贝循环复制List实现类的构造方法addAll()方法System.arraycopy()方法clone()方法深拷贝序列化方法实现cloneable接口和重写clone方法基础类型没有深浅拷贝浅拷贝: 对于仅仅是复制了引用(地址),换句话说,复制了之后,原来的变量和新的变量指向同一个东西,彼此之间的操作会互相影响,为浅拷贝。深拷贝:而如果是在堆中重新分配内存,拥有不同的地址,但是值是一样的,复制后的对象与原来的对象是完全隔离,互不影响,为深拷贝。深浅拷贝的主要区别就是:复制的是引用(地址原创 2021-01-22 15:30:33 · 1247 阅读 · 1 评论 -
学不会的HashMap(一)
前言HashMap 最早出现在 JDK 1.2中,是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap 底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可原创 2020-10-22 14:23:06 · 218 阅读 · 0 评论 -
HashMap链表转化红黑树的最大长度居然不是8???
HashMap上链表的最大长度我们都知道HashMap上链表长度达到8时,链表会从链表转化为树,但其实还有一种极限情况:HashMap的链表长度要达到10的时候才转化为树。 public static void main(String[] args) { Map<User, Integer> map = new HashMap<>(); User user = new User(); for (int i =0 ; i &原创 2020-05-11 16:45:56 · 711 阅读 · 3 评论