set接口继承collection接口,其主要实现类有三个:hashset,LinkedHashSet以及TreeSet
•Set常用方法
–add(Object obj):向Set集合中添加元素,添加成功返回true,否则返回false
–size() :返回Set集合中的元素个数
–remove(Object obj) : 删除Set集合中的元素,删除成功返回true,否则返回false。
–isEmpty() :如果Set不包含元素,则返回 true ,否则返回false
–clear() : 移除此Set中的所有元素
–iterator() :返回在此Set中的元素上进行迭代的迭代器
–contains(Object o):如果Set包含指定的元素,则返回 true,否则返回false
1、HashSet是无序的,每次遍历出来的顺序不一定相同,以hashmap为例:
package august13;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Hashset {
public static void main(String[] args) {
Set<String> set = new HashSet<String>();
set.add("元素1");//不允许添加重复元素
set.add("元素1");
System.out.println(set.size());//返回元素的个数
if(set.remove("元素2")) {
System.out.println("yes");
}else{
System.out.println("no");
};//删除制定元素,remove()是Boolean类型
if(set.isEmpty()) {
System.out.println("空");//为空返回true
}
set.clear();//清空集合
set.add("元素1");
set.add("元素2");
Iterator<String> iteratorr= set.iterator();//返回在此Set中的元素上进行迭代的迭代器
System.out.println(iteratorr.next()+"'");
System.out.println(iteratorr.next());
while(iteratorr.hasNext()) { //在下一个元素不为null的时候(iterator.hasnext()是Boolean类型)
System.out.println(iteratorr.next());//迭代器不是
}
//遍历set集合也可以用加强for循环
for(String ss:set) {
System.out.println(ss);
}
System.out.println(set.contains("元素1"));//判断集合中是否有某元素
}
}
2、LinkedHashset:是HashSet的子类,由于该实现类对象维护着一个运行于所有元素的双重链接列表,由于该链接列表定义了迭代顺序,所以在遍历该实现类集合时按照元素的插入顺序进行遍历
3、treeset:具有排序的功能,需要实现comparable接口