一.set接口公共方法:
Set<String> f1 = new Set<String>() {
@Override
public int size() { //返回集合中元素的个数
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean isEmpty() { //查看集合是否为空,如果为空返回true
// TODO Auto-generated method stub
return false;
}
@Override
public boolean contains(Object o) { //查看集合中是否存在此元素
// TODO Auto-generated method stub
return false;
}
@Override
public Iterator<String> iterator() { //返回此集合中元素的迭代器
// TODO Auto-generated method stub
return null;
}
@Override
public Object[] toArray() {
// TODO Auto-generated method stub
return null;
}
@Override
public <T> T[] toArray(T[] a) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean add(String e) { //将指定的元素添加到此集合
// TODO Auto-generated method stub
return false;
}
@Override
public boolean remove(Object o) { //如果存在,从集合中删除该元素
// TODO Auto-generated method stub
return false;
}
@Override
public boolean containsAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean addAll(Collection<? extends String> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean retainAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean removeAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public void clear() { //清除集合中所有元素
// TODO Auto-generated method stub
}
};
二.它的几个实现类的特征以及使用的注意事项
set集合的实现类:
HashSet:
特征:无序、无索引、不重复 允许有null值
注意事项:
① hashSet 的底层数据结构是哈希表,存储元素和取出元素 的顺序不一致
②不能使用普通for循环遍历(因为没有带索引的方法)。应该使用 迭代器或 for each 来遍历
LinkedHashSet:
特征:有序、不重复、无索引 允许有null值(因为继承的是HashSet)
注意事项:
①底层数据结构是按照链表的结构存储的
②LinkedHashSet中的元素并不是按照哈希表中的随机顺序存储的,而是按照它们被添加到集合中的顺序存储的。LinkedHashSet中的元素并不是按照哈希表中的随机顺序存储的,而是按照它们被添加到集合中的顺序存储的
TreeSet:
特征:可排序、不重复、无索引 不允许有null值
注意事项:
①自然顺序是指元素的默认顺序,如数字的升序、字符串的字典序等。如果需要不同的顺序,可以通过比较器来实现。
②在使用 TreeSet 时,元素需要具有可比较性,要么实现 Comparable 接口,要么在构造 TreeSet 时提供一个比较器。