Set学习

不能插入相同元素,若插入相同元素则返回false(其实插入不同的元素是会返回true的)

常见的方法:

No.
Method & Description
1
add( )         向集合中添加元素
2
clear( )        去掉集合中所有的元素
3
contains( )    判断集合中是否包含某一个元素
4
isEmpty( )    判断集合是否为空
5
iterator( )    主要用于递归集合,返回一个Iterator()对象
6
remove( )    从集合中去掉特定的对象
7
size( )        返回集合的大小
 
 
1.HashSet——底层就是HashMap,存入的元素相当于HashMap的key,HashMap的value为常量,相当于只对Key进行处理。
 
  • 不同步
  • 不能保证元素的排列顺序,与添加顺序不同(存储顺序跟元素的hash值相关)
  • 存入的值可以是null
 
没有get方法:只能通过迭代器的方法进行遍历。为什么HashMap有get方法而HashSet没有?看一下HashMap的get方法

 

 

其实HashMap的get方法也是遍历。
 
2.TreeSet——底层就是红黑树,默认排序为从小到大。也可以通过实现Comparable或Comparator接口实现自定义排序。
  • Comparator comparator(): 如果TreeSet采用了定制顺序,则该方法返回定制排序所使用的Comparator,如果TreeSet采用自然排序,则返回null;
  • Object first(): 返回集合中的第一个元素;
  • Object last(): 返回集合中的最后一个元素;
  • Object lower(Object e):返回指定元素之前的元素。
  • Object higher(Object e):返回指定元素之后的元素。
  • SortedSet subSet(Object fromElement,Object toElement):返回此Set的子集合,含头不含尾;
  • SortedSet headSet(Object toElement):返回此Set的子集,由小于toElement的元素组成;
  • SortedSet tailSet(Object fromElement):返回此Set的子集,由大于fromElement的元素组成;
 
Hash和Tree比较相同用的方法:
Hash是通过比较hash值的方式来比较两个元素是否相同,而Tree是通过元素内部的compareTo方法来比较的(这个方法需要继承compareable类并重写compareTo方法,一些包装类,例如Integer等都已经写好了这个方法)

 

posted @ 2020-02-22 19:59  BeeeenWei  阅读(140)  评论(0)    收藏  举报