------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一.Set集合
(1)Set集合的特点:无序(存储和取出的顺序不一致),元素唯一
Set集合的子类:
HashSet集合
TreeSet集合
LinkedHashSet集合
(2)HashSet集合
HashSet保证元素的唯一性的原理:
底层数据结构是哈希表,哈希表依赖于哈希值。
最终通过重写两个方法hashCode(),equals()保证元素的唯一性。
比较顺序:
先比较hashCode()值:
结果为true:
后使用equals()方法判断:
true:说明元素重复。不添加。
false:说明元素不重复,添加。
结果为false:
就直接添加到集合。
案例:
HashSet存储字符串并遍历(String类重写了hashCode()和equals()方法)
<span style="font-family:FangSong_GB2312;font-size:18px;"><strong><span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.itcast;
import java.util.HashSet;
public class Test2 {
/**
* HashSet存储字符串并遍历(String类已经重写了hashCode()和equals()方法)
*/
public static void main(String[] args) {
//创建集合对象
HashSet<String> hs = new HashSet<String>();
//创建元素对象
String s = "火影忍者";
String s2 = "海贼王";
String s3 = "灌篮高手";
String s4 = "柯南";
//将元素对象添加进集合
hs.add(s);
hs.add(s2);
hs.add(s3);
hs.add(s4);
//使用增强for循环遍历HashSet集合
for (String string : hs) {
//输出遍历后的结果
System.out.println(string);
}
}
}
</span></strong></span>
HashSet存储Person对象并遍历(Person类需要重写hashCode()和equals()方法)