集合框架知识总汇之(Set集合)

简介: 集合框架知识总汇之(Set集合)

1.Set集合:

1.1特点:

       A.有序

       B.对象不可以重复

1.2遍历方式:

       A.foreach

       B.Iterator(迭代器)

package com.lya.text;
import java.util.HashSet;
import java.util.Iterator;
/**
 * set的增删改查
 * @author lya
 *
 */
public class demo1 {
  public static void main(String[] args) {
    HashSet hs = new HashSet<>();
    // 新增
    hs.add("小黑子");
    hs.add("小黑子");
    hs.add("我不是小黑子");
    hs.add("我不是小黑子");
    hs.add("你是小黑子");
    hs.add("你是小黑子");
    for (Object object : hs) {
      System.out.println(object);
    }
//     这里会输出:
//    小黑子
//    你是小黑子
//    我不是小黑子
    System.out.println("===========删除===============");
// 删除
        hs.remove("小黑子");
//     这里会输出:
//    你是小黑子
//    我不是小黑子
//    查看
      System.out.println("============foreach遍历==============");
      for (Object object : hs) {
      System.out.println(object);
    }
      System.out.println("============迭代器遍历==============");
      Iterator it =hs.iterator();
      while(it.hasNext()) {
        System.out.println(it.next());
      }
  }
}

注:set集合没有修改的属性;

3.3关于set集合的去重。

3.3.1当我们直接调用contans,没有重写hashcold,equals

 3.3.2当我们直接调用contans,重写hashcold,equals

 

这里我们分析:当hashcold值是一样的时候,就去比较equales值。

3.4关于set集合如何进行排序???

3.4.1可以用到Set集合的子类TreeSet中的:comparable和comparator比较器来进行排序

3.4.2实现comparable接口

从运行结果来看:

①我们在set集合中添加字符串是没问题的。

②我们在set集合中添加对象时,却会报出一个错误

因为我们的自定义对象并没有实现comparable接口或comparator

就不会报错啦!!!

3.4.2实现comparator比较器

 

3.5关于set集合的子类。

     

3.4.1.HashSet

它不允许出现重复元素【唯一】;

不保证集合中元素的顺序【无序】

HashSet的实现是不同步的

3.4.2 LinkedHashSet

哈希表和链表实现Set接口,具有可预测的迭代次序;

由链表保证元素有序,也就是说元素的存储和取出顺序是一致的。

由哈希值保证元素唯一,也就是说没有重复的元素

3.4.3TreeSet

TreeSet 是一个有序的集合

作用:提供有序的Set集合

TreeSet是基于TreeMap实现的

 

目录
相关文章
|
20天前
|
存储 NoSQL 关系型数据库
Redis 集合(Set)
10月更文挑战第17天
33 5
|
21天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
35 6
|
21天前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
31 2
|
5天前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
|
5天前
|
存储 Java 开发者
在 Java 中,如何遍历一个 Set 集合?
【10月更文挑战第30天】开发者可以根据具体的需求和代码风格选择合适的遍历方式。增强for循环简洁直观,适用于大多数简单的遍历场景;迭代器则更加灵活,可在遍历过程中进行更多复杂的操作;而Lambda表达式和`forEach`方法则提供了一种更简洁的函数式编程风格的遍历方式。
|
5天前
|
Java 开发者
|
21天前
|
存储 Java 数据处理
Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。
【10月更文挑战第16天】Java Set:无序之美,不重复之魅!Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。通过 hashCode() 和 equals() 方法实现唯一性,适用于需要唯一性约束的数据处理。示例代码展示了如何使用 HashSet 添加和遍历元素,体现了 Set 的高效性和简洁性。
23 4
|
23天前
|
存储 Java 数据处理
Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。
Java Set:无序之美,不重复之魅!Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。它通过 hashCode() 和 equals() 方法确保元素唯一性,适用于需要唯一性约束的数据处理。示例代码展示了如何使用 HashSet 实现这一特性。
23 5
|
21天前
|
Java 开发者
在Java集合世界中,Set以其独特的特性脱颖而出,专门应对重复元素
在Java集合世界中,Set以其独特的特性脱颖而出,专门应对重复元素。通过哈希表和红黑树两种模式,Set能够高效地识别并拒绝重复元素的入侵,确保集合的纯净。无论是HashSet还是TreeSet,都能在不同的场景下发挥出色的表现,成为开发者手中的利器。
24 2
|
30天前
|
存储 JavaScript 前端开发
Set、Map、WeakSet 和 WeakMap 的区别
在 JavaScript 中,Set 和 Map 用于存储唯一值和键值对,支持多种操作方法,如添加、删除和检查元素。WeakSet 和 WeakMap 则存储弱引用的对象,有助于防止内存泄漏,适合特定场景使用。