HashSet和TreeSet

HashSet

HashSet:HashSet是Set接口的典型实现,大多数时候使用Set集合时都是用这个实现类,我们大多时候时候说的set集合指的都是HashSet

HashSet按照Hash算法来存储集合中的元素,以你具有很好的存取和查找性能.

HashSet具有以下特定:

  • 不能保证元素的排列顺序(根据hashCoed值来排列)
  • 不可重复
  • HashSet不是线程安全的
  • 集合元素可以使用null

当向HashSet集合中存入一个元素时,Hashset会调用该对象的HashCode()方法来得到该对象的hashCode值,然后根据hashCode值决定该对象在HashSet中的存储位置

Set set = new HashSet();//等价于Set<Object> set = new HashSet();

各种方法:

  • add():添加
  • remove():删除
  • clear():清除hashSet真个列表
  • contains():判断某元素是都在HashSet中

如何遍历HashSet:

Iterator it = set.iterator();
while (it.hasNext()){
    System.out.println(it.next());
}
//for each迭代集合,
for(Object obj:set){
    System.out.println(obj);
}

查找HashSet的大小: set.size()
在这里插入图片描述

//如果想让集合只存同样的数据类型

//如果想让集合只存桶有的数据类型
//使用泛型
Set<String> set1 = new HashSet();
set1.add("1");

TreeSet

treeSet可以确保集合元素处于排序状态

TreeSet支持两周排序方法:自然排序和定制排序.默认情况下,TreeSet采用自然排序
在这里插入图片描述

Set set = new TreeSet();

遍历与hashSet相同.

Iterator it = set.iterator();
while (it.hasNext()){
    System.out.println(it.next());
}
//for each迭代集合,
for(Object obj:set){
    System.out.println(obj);
}

在这里插入图片描述
在这里插入图片描述

原文地址:https://www.cnblogs.com/zhahu/p/12333671.html