Collection接口的另外一个子接口——Set接口
Set接口描述的是一种比较简单的一种集合,集合中的对象并不按特定的方式排序,并且不能保存重复的对象。
HashSet是Set接口的常用实现类。而Set接口继承了Collection接口,同时没有添加新的方法,所以在使用上与List接口的实现类使用方式一致。都是有增加元素的add方法和获取元素个数的size方法。所以只需要进行类的替换就可以了。在这里就不做重复讲解了。
Set集合存储数据的特点:无序,不可重复。
HashSet集合是如何保证元素不重复 (唯一性的)
当给hashset中存放元素的时候会先调用对象的hashCode方法,计算哈希值,根据哈希值来决定当前对象在集合中的存储位置。在存储的时候,如果遇到了哈希值相同的元素,这时集合的底层还会去调用当前对象的equals方法,判断当前正要存放的对象和位置上已经存在的对象是否是同一个对象,equals方法返回的true,就认为相同对象,不保存,如果equals方法返回的false,当前对象已经会被保存。
public class De {
public String setdeduplication(String s){
Set set = new HashSet();
for (int i = 0;i < s.length();i++){
set.add(s.charAt(i));
}
Iterator i = set.iterator();
String ss = "";
while(i.hasNext()){
ss += i.next();
}
return ss;
}
}
上面这段代码就利用了set集合的不可重复性,接受一个字符串返回一个没有重复字符的字符串。