MapSet 2 (Set)
1、Set的说明
Set 的官方文档
与Map不同,Set是继承于Collection这个类的,且Set中只存储了Key。
2、常用方法
注意:
1、Set 是继承于Collection的一个接口类。
2、Set只存储了key,并且要求key一定要是唯一的。
3、Set的底层是使用Map来实现的,其使用key与Object的一个默认对象作为键值对插入到Map中的 。
4、Set最大的功能就是对集合中的元素进行去重。
5、实现Set接口的常用类有TreeSet和HashSet,还有一个LinkedHashSet,LinkedHashSet是在HashSet的基础上维护了一个双向链表来记录元素的插入次序。
6、Set中的Key不能修改,如果要修改,先将原来的删除掉,然后再重新插入
7、Set中不能插入null的key。
8、TreeSet和HashSet的区别:
3、TreeSet常用方法应用
3.1 add方法
public static void main(String[] args) {Set<String> treeset = new TreeSet<>();//add方法存在返回false,不存再返回trueboolean flg = treeset.add("apple");treeset.add("banana");treeset.add("orange");System.out.println(treeset);//输出当前treeset的元素个数System.out.println(treeset.size());//不能添加null对象treeset.add(null);}
2、remove方法和contains方法
//contains方法:存在该元素返回true,不存在返回falseSystem.out.println(treeset.contains("banana"));System.out.println(treeset.contains("aaaa"));//remove方法:删除成功返回true,没有删除的元素返回false,删除空元素返回空指针异常System.out.println(treeset.remove("banana"));System.out.println(treeset.remove("aaaa"));
3、迭代器遍历
//迭代器遍历Iterator iterator = treeset.iterator();while (iterator.hasNext()){System.out.println(iterator.next());}