自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 为什么会产生哈希冲突?

哈希值是通过特定的散列算法把任意长度的输入数据变换成固定长度的输出值,这个值为一个int整型,但是int保存的范围是有限的,但是数据本身是无限的,把无限个数据用有限的数字表示,便一定会出现重复,即产生哈希冲突。

2023-08-14 02:14:11 43

原创 为什么重写hashCode()时,必须重写equals()?

当我们在集合中添加一个由我们自己创建的类时,其加入的元素需要开辟新的空间,尽管内容相同,但是其哈希值不同,又因为Set集合在去重时会先判断哈希值,所以需要重写hashCode()方法.如果哈希相同,则会调用equals()方法去进一步判断。而未重写前调用的equals()方法依旧比较的地址。所以此时equals()无法进行对其值的正确判断,因此必须要重写equals方法。

2023-08-14 02:07:13 483

原创 Set集合如何过滤重复元素?

1,通过hashcode(),比较其哈希值 比较哈希值时判断是否相同最快的方法,哈希不同则一定不同。创建HashSet时,其构造方法创建维护了一个HashMap来进行存储,元素值保存在HashMap的key位置。2,如果哈希相同,则调用equals 因为哈希值相同其值不一定相同(可能产生哈希冲突)注:hashcode() equals() 需要在调用的类中重写。

2023-08-14 01:49:08 54

原创 LinkedList的适用场景

LinkedList是基于双向链表实现,链表中的每个节点都是一个Node类型的对象,Node对象由item、prev、next三部分组成。所以LinkedList适用于需要频繁的删除插入数据,且不需要或少用去随机访问其中元素的读少写多的情况。但当我们随机访问集合中的某一元素时,只能从头或从未依次遍历去访问某一元素。LinkedList 具有:更快速高效地添加删除元素的能力,但遍历效率低。当对集合中的元素进行操作时只需要操作其 next prev的指向。节点中会记录当前元素的组成方便完成指向关系。

2023-08-14 01:29:17 131

原创 ArrayList的扩容方式

当数组长度不为零,不够用时,在添加元素时会自动调用grow()方法进行扩容,扩容至原来的1.5倍长,数组的最大容量在Integer.MAX_VALUE-8至Integer.MAX_VALUE之间,如果超出,则抛出OutOfMemoryError错误。public ArrayList(int initialCapacity) 有参构造方法会按照指定容量initialCapacity创建数组。public ArrayList()无参构造方法会创建一个长度为零的空数组。

2023-08-14 00:54:56 34

原创 ArrayList和Vector的区别

ArrayList默认初始化长度为0,第一次添加自动扩容为10,后续扩容为原来的1.5倍。Vector默认初始长度为10,数组扩容按照2倍或者自定义扩容的方式进行。1,ArrayList 是线程不安全的,允许多个线程同时访问,因此他的效率更高。Vector是线程安全的,只允许一个线程访问,因此效率较低。

2023-08-13 23:36:25 26 1

原创 ArrayList和LinkedList的区别

2,扩容方式:ArrayList在初始化是可以使用无参 public ArrayList() (长度为零)和有参 public ArrayList(int initialCapacity)的构造方法来初始化内部数组的长度.当内部数组长度为一,第一次添加元素时,长度扩容为10,除此以外,若容量不足则扩充到原来的1.5倍,且扩容时最长在Integer.MAX_VALUE-8至Integer.MAX_VALUE之间,若超出,就会抛出OutOfMemoryError错误。

2023-08-13 23:25:22 27

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除