与上篇章相同,我们先来了解集合框架中Set的分支
集合框架
Set集合
Set继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两大实现类。
1.特点
无序
Set集合数据添加的顺序和取出的顺序不一致
唯一
set集合数据不允许添加重复数据
问题:存储对象,验证Set集合唯一性
重写User对象中的equals方法,比较User对象中的属性。
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
当比较对象的属性相同时,已存在的对象信息不会被覆盖,而是过滤了。 结论:先比较hashcode值是否相同,再比较equals;
2.遍历方式
foreach遍历
迭代器
常见的实现类
HashSet
LinkedHashSet
TreeSet
TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。TreeSet是基于TreeMap实现的。TreeSet中的元素支持2种排序方式:自然排序 或者 根据创建TreeSet 时提供的 Comparator 进行排序。
java.lang.Comparable自然比较接口
java.util.Comparator比较器
今日篇章到此结束,希望大家先理解什么是集合框架以及集合框架的几个分支再进行学习,关注博主,每日更新^_^