1.Set集合特性
首先,Set是一个接口(便于实现类向上转型),HashSet实现了Set接口,Set继承自Collection集合类。
其次,Set集合类中不允许包含重复元素,允许包含一个null
最后,Set集合类中没有顺序。
package java.util;
/**
* Set集合源码
* 2016-05-14
* @param args
*/
public interface Set<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
boolean retainAll(Collection<?> c);
boolean removeAll(Collection<?> c);
void clear();
boolean equals(Object o);
int hashCode();
}
2.Set的用法
public static void main(String[] args) {
Set<String> set = new HashSet<String>(); //向上转型,<String>使用了泛型,保证在编译期进行检错
set.add("1");
set.add("1");
set.add("2");
Iterator<String> it = set.iterator(); //使用迭代器进行遍历
while(it.hasNext()){
System.out.println(it.next().toString());
}
}
输出结果:
1
2
保存的值有3个String,输出结果只有两个String。说明,Set类自动将重复值进行剔除,这在实际开发中,可以避免主键出现重复值。