目录
3.1 为什么HashSet的检索速度比ArryList快?
4.1 ArrayList的增删改查:ArrayList增删改查代码
4.2 HashSet的增删改查:HashSet增删改查代码
4.3 HashMap的增删改查:HashMap增删改查代码
一、什么是List、Set、Map?
Java集合类大致分为Set、List、Queue、Map四种体系。
- List类似于一个可动态增长的数组,代表有序、可重复的集合;
- Set类似于罐子,里面的元素是无序的,不可重复的。
- Map类似于储存Key-vaule键值对的罐子,也是无序的,Key值唯一。
Collection集合继承关系如下(简化版):
二、ArrayList、HashSet、HashMap特性
三、其他
3.1 为什么HashSet的检索速度比ArryList快?
因为HashSet可以理解为它将元素按照hashcode标定为几个罐子。它的检索过程是先用hashcode检索定位到一个罐子,再从这个罐子通过equal()方法判断。而ArrayLIst的方式是无脑的从前往后一个个去判断(当然是不加其他检索算法的前提下)。
举个例子,就好像你在高一年24个班级共1000个人中找一个名叫jackie的同学,hashset就是先告诉了你在找10班,你在10班去找就行。而ArrayList从第1班找到24班,每班找50次。
3.2 HashSet中如何防止插入属性相同的对象?
在自定义类中重写hashcode()和equal()方法即可
四、示例代码:
点击右边链接可打开代码