set接口基本介绍:
1、无序的,添加和取出的顺序不一致,没有索引。
2、不允许重复元素,所以最多包含一个null。
3、JDK API中set接口的常见实现类有 HashSet和TreeSet。
由于是Collection接口的子接口,所以可以使用Collection的方法。
在遍历元素的时候,可以使用迭代器,增强for循环,但是不能使用索引的方式来获取元素。取出的顺序不是添加的顺序,但顺序是固定的。
import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Set_01 { public static void main(String[] args) { Set set = new HashSet(); set.add("Jack"); set.add("Mary"); set.add("Tom"); set.add(null); set.add(null); System.out.println(set); Iterator iterator = set.iterator(); while (iterator.hasNext()) { Object obj = iterator.next(); System.out.println(obj); } for (Object o:set) { System.out.println(o); } } }
[null, Tom, Jack, Mary] null Tom Jack Mary null Tom Jack Mary Process finished with exit code 0
HashSet的底层是HashMap。
set.add() API的结果会返回一个bool值,如果数据添加进去了,则返回true。如果数据没有被添加进去,则返回false。
import java.util.HashSet; import java.util.Set; public class Set_02 { public static void main(String[] args) { Set set = new HashSet(); System.out.println(set.add("Jone")); System.out.println(set.add("Mary")); System.out.println(set.add("Amy")); System.out.println(set.add(null)); System.out.println(set.add("Jone")); } }
true true true true false Process finished with exit code 0