JS 去重还在用循环?JS 中的 Set 和 Java 中的 Set 有何不同?

最近在写一个web页的业务逻辑时,需要对数组去重。在准备写的那一刻,我犹豫了一下,还要在循例里判断去重吗?好麻烦呀!有没有更简便的方法,最好一行代码搞定!搜索一下,方法还是有的。

在 ECMAScript 6 中新增的数据结构 Set,用于存储唯一值的集合。JS 中也有 Set 了,一起看看它和 Java 中的 Set 有何不同。ECMAScript 是嵌入在Web浏览器中的语言。

JS 中的 Set

  1. 初始化 Set

    const mySet = new Set();
    

    运行结果图:

image.png
  1. 添加元素到 Set

    mySet.add("apple");
    
  2. 从 Set 中删除元素

    mySet.delete("banana");
    
  3. 检查 Set 中是否包含特定元素

    console.log(mySet.has("apple")); // false
    
  4. 获取 Set 的大小(即元素数量)

    console.log(mySet.size); // 2
    
  5. 将 Set 转换为数组:

    const myArray = [...mySet]; 
    
  6. 使用迭代器遍历 Set

    mySet.forEach((value) => {console.log(value);});
    
  7. 返回一个集合迭代器:

    console.log(mySet);
    

    运行结果:

image.png
官网:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

Java 中的 Set
在 Java 中,Set 是 java.util 包中的一个泛型接口,继承自 Collection 接口,用于表示一组不包含重复元素的对象。

  1. 创建一个空的 Set

    Set<String> mySet = new HashSet<>();
    
  2. 添加元素到 Set

    mySet.add("apple");
    
  3. 从 Set 中删除元素

    mySet.remove("banana");
    
  4. 检查 Set 中是否包含特定元素

    System.out.println(mySet.contains("apple")); // true
    
  5. 获取 Set 的大小(即元素数量)

    System.out.println(mySet.size()); // 2
    
  6. 使用迭代器或 forEach 循环遍历 Set

    // 使用迭代器
    
  7. Set 转换为数组

    // 无参数为Object类型的数组
    
  8. 两个Set 集合对比,只保持第一个集合中有的数据

    mySet.stream().forEach(item->{
    

运行结果:

image.png

官网:https://docs.oracle.com/javase/8/docs/api/java/util/Set.html

JS 中的 Set 是一个对象,而 Java 中的 Set 是一个接口,这是它们的不同。它俩虽有不同,但在使用的时候,大部分方法名几乎都是一样的,这对于 Java Web 开发者非常友好。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容