一、集合
(一)Java集合
1.概述:Java集合类存放与java.util包中,是一个用来存放对象的容器;
2.特点:Java集合的特点
(1)集合只能存放对象;比如存放一个int型数据1放入到集合中,其实它是自动转换成Integer类之后存入的,Java中每一种基本类型都有对应的引用类型;
(2)集合存放的是多个对象的引用,对象本身还是放在堆内存中;
(3)集合可以存放不同类型,不限数量的数据类型;
3.体系:Java集合可分为Set、List、Map三种大体系
(1)Set:无序、不可重复的集合;
(2)List:有序、可重复的集合;
(3)Map:具有映射关系的集合;
4.在JDK5后,增加了泛型,Java集合可以记住容器中对象的数据类型;
(二)HashSet
1.HashSet是Set接口的典型实现,大多数时候使用Set集合时都使用这个实现类。我们大多数时候说的Set集合指的都是HashSet;
2.HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能;
3.HashSet具有以下特点:
(1)不能保证元素的排列顺序;
解释:当向HashSet集合中存入一个元素时,HashSet会调用该对象的 hashCode() 方法来得到该对象的hashCode值,然后根据hashCode值决定该对象在HashSet中的储存位置;
(2)不可重复;(指hashCode不相同)
解释:如果两个元素的 equals() 方法返回true,但它们的 hashCode() 返回值不相等,HashSet将会把它们存储在不同的位置,但依然可以添加成功;
(3)HashSet不是线程安全的;
(4)集合元素可以存null;
4.HashSet类