java集合之set

Set集合的特点:

  • 不能存储相同的元素。
    HashSet
  • 散列将元素分散在表的各个位置上,所以访问它们的顺序几乎是随机的。只有不关心集合中元素的顺序时才应该使用 HashSet。
    TreeSet
  • TreeSet也不能存放重复对象,但是TreeSet会自动排序,如果存放的对象不能排序则会报错,所以存放的对象必须指定排序规则。排序规则包括自然排序和客户排序。
      ①自然排序:TreeSet要添加哪个对象就在哪个对象类上面实现java.lang.Comparable接口,并且重写comparaTo()方法,返回0则表示是同一个对象,否则为不同对象。
      ②客户排序:建立一个第三方类并实现java.util.Comparator接口。并重写方法。定义集合形式为TreeSet ts = new TreeSet(new 第三方类());

常用方法

  • 添加add
HashSet<String> set = new HashSet<>();
set.add("唐僧");
set.add("孙悟空");
set.add("猪八戒");
set.add("沙僧");
set.add("唐僧");
set.add("猪八戒");
System.out.println(set);//[沙僧, 孙悟空, 猪八戒, 唐僧] 说明了hashSet 无序,不可重复的特点
  • 删除某一个remove()
HashSet<String> set = new HashSet<>();
set.add("唐僧");
set.add("孙悟空");
set.add("猪八戒");
set.add("沙僧");
set.remove("唐僧");
set.remove("白骨精");
System.out.println(set);//[沙僧, 孙悟空, 猪八戒]  如果存在就删除
  • 删除所有元素 clear()
HashSet<String> set = new HashSet<>();
set.add("唐僧");
set.add("孙悟空");
set.add("猪八戒");
set.add("沙僧");
set.clear();
System.out.println(set);//[]
  • 是否包含指定的元素 contains(Object o)
HashSet<String> set = new HashSet<>();
set.add("唐僧");
set.add("孙悟空");
set.add("猪八戒");
set.add("沙僧");
System.out.println(set.contains("唐僧"));//true
System.out.println(set.contains("白骨精"));//false
  • 返回 set 的哈希码值hashCode()
  • 判断是否为空 isEmpty()
HashSet<String> set = new HashSet<>();
set.add("唐僧");
set.add("孙悟空");
set.add("猪八戒");
set.add("沙僧");
System.out.println(set.isEmpty());//false
set.clear();
System.out.println(set.isEmpty());//true
  • 迭代器 iterator()
HashSet<String> set = new HashSet<>();
set.add("唐僧");
set.add("孙悟空");
set.add("猪八戒");
set.add("沙僧");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
    System.out.println(iterator.next());
}
  • 返回 set 中的元素数size()
HashSet<String> set = new HashSet<>();
set.add("唐僧");
set.add("孙悟空");
set.add("猪八戒");
set.add("沙僧");
System.out.println(set.size());//4

你可能感兴趣的:(java基础学习)