Set集合可以看做是map集合的另一种形式,它包含hashSet和TreeSet 由于TreeSet的基础结构是红黑树,所以我们放在后面对树进行总结后再总结TreeSet和TreeMap。此处只简单介绍hashSet。上代码,要点在注释中。
@Test
public void testHashSet(){
Set<String> set = new HashSet<String>();
set.add("1");
set.add("9");
set.add("5");
set.add("7");
set.add("7");
set.add("");
set.add(null);
//hashSet 和list 的使用方法类似,所以不再详细比较效率,在此处简单列举一下遍历的方法,需要注意一点,set的取值只能通过迭代器。
//1.通过迭代器
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next()+" ");
}// null 1 7 5 9 可以看到,set中只保存了一个7 ,说明hashSet中不允许重复数据。 且没有放入顺序,也没有自然顺序
System.out.println();
//2.通过foreach循环
for(Object obj : set){
System.out.println(obj);
}// 输出结果 null 1 7 5 9 HashSet中可以存放null值 ""值
//列举下set中常用方法
//1.查看set中是否包含某元素
boolean test1 = set.contains("7");
System.out.println(test1);//true
//2.查看set是否为空集合。
boolean test2 = set.isEmpty();
System.out.println(test2);//false
//3.去除集合中的某个元素
set.remove("5");
for(Object obj : set){
System.out.print(obj+" ");
}//null 1 7 9
System.out.println();
//4.清空集合
set.clear();
for(Object obj : set){
System.out.print(obj+" ");
}//
System.out.println();
}