精华内容
下载资源
问答
  • set集合的size方法
    千次阅读
    2021-03-05 12:49:03

    集合set

    可变的

    无序的

    不重复的元素集合

    set定义 初始化

    set() 生成一个空集合

    set(iterable) 可通过可迭代对象生产一个新的集合

    s1 =set()

    s2= set(range(5))

    s3= set(list(range(10)))

    s4= {} #这是字典的定义方法

    s5 = {9,10,11} #set

    s6 = {(1,2),3,'a'}

    s7= {[1],(1,),1} #set的元素要求必须可以hash 列表不能hash

    set的元素要求必须可以hash

    目前学过的不可hash的类型有list、set

    元素不可以索引

    set可以迭代

    set增加

    add(elem)

    增加一个元素到set中

    如果元素存在,什么都不做

    update(*others)

    合并其他元素到set元素中来

    参数others必须是可迭代对象

    就地修改

    set删除

    remove(elem)

    从set中移除一个元素

    元素不存在,抛出异常keyError异常

    discard(elem)

    从set中移除一个元素

    元素不存在,什么都不做

    pop() -> item

    移除并返回任意的元素

    空集返回KeyError异常

    clear()

    移除所有元素

    集合

    基本概念

    全集

    所有元素的集合。例如实数集,所有实数组成的集合就是全集

    更多相关内容
  • 本文实例讲述了JS集合set类的实现与使用方法。分享给大家供大家参考,具体如下: js集合set类的实现 /*js集合set类的实现*/ function Set() { this.dataStore = []; this.add = add;//新增元素 this.remove = ...
  • Set接口继承Collection接口,它与List集合有一个区别就是:List集合可以保存重复的数据,而Set集合不可以。Set接口有三个常用实现类: HashSet,特点: 它不按照存储的顺序保存,具有不确定性,也就是说每一次...

    Set接口继承Collection接口,它与List集合有一个区别就是:List集合可以保存重复的数据,而Set集合不可以。Set接口有三个常用实现类:

    1. HashSet,特点:
    • 它不按照存储的顺序保存,具有不确定性,也就是说每一次遍历集合出的元素排序不一定相同;
    • 允许使用null元素
    1. LinkedHashSet,特点:
    • 它是HashSet的子类,但它却是按照自然顺序保存的(不是简单的线性顺序)
    • 由于该实现类对象维护者一个运行于所有元素的双重链接列表,且该链接列表定义了一个迭代顺序(从名字上就可以看出Linked,被链接的,各个元素之间有一定的关系),所以在遍历该实现类集合时按照元素的插入顺序进行遍历
    1. TreeSet
    • 及实现Set接口,也实现了SortedSet接口,具有排序功能
    • 存入TreeSet中的对象元素需要实现Comparable接口

    让我们以HashSet实现类为例演示一下Set接口方法:

    package gather;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;//引包
     
    public class Test{
    	public static void main(String[] args) {
    		Set<String> names = new HashSet<String>();//多态,<String>泛型,用于限制存入集合中的元素的数据类型
    
    		//add(Object element)用于向集合中添加元素,添加成功返回true,否则返回false
    		System.out.println(names.add("刘一"));//true
    		System.out.println(names.add("陈二"));//true
    		System.out.println(names.add("张三"));//true
    		System.out.println(names.add("张三"));//false
    
    		//size()用于返回集合中元素的个数
    		int size = names.size();
    		System.out.println(size);//3
    		
    		//isEmpty()用于判断集合中是否含有元素,没有返回true,有返回false
    		boolean flag = names.isEmpty();
    		System.out.println(flag);//false
    
    		//remove(Object element)移除集合中指定的元素,删除成功返回true,否则返回false
    		System.out.println(names.remove("张三");//true
    		System.out.println(names.size());//2
    
    		//contains()用于判断集合中是否含有元素element,有则返回true,没有则返回false
    		System.out.println(names.contains("刘一"));//true
    
    		//遍历集合
    		//因为Set集合中的元素不是按照存储顺序保存的,所以每个元素也就没有索引,这也就说明了为什么Set集合中没有get方法,
    		//因此,对Set集合的遍历只能通过加强循环(for-each)和迭代器进行遍历
    
    		for(String name:names){
    			System.out.println(name);
    		}
    		//刘一 陈二 (不一定是这个顺序)
    
    		Iterator<String> iterator = names.iterator();//<String>泛型
    		while(iterator.hasNext()){  //hasNext()用于判断是否含有下一个元素
    			System.out.println(iterator.next());//next()用于指向下一个元素
    		}
    		//陈二 刘一 (不一定是这个顺序)
    		
    		//clear()用于清空集合中所有的元素
    		names.clear();
    		System.out.println(names.size());//0
    	}
    }
    
    展开全文
  •  很多时候我们把Set叫做 集合,但是,Set可以是集合集合不一定是Set。  特性:唯一性=>不重复=>能够对数据进行去重操作。   注:集合去重,是全等匹配,===。 创建Set  Set 本身是一个构造函数,调用构造...

    Set
      ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
      很多时候我们把Set叫做 集合,但是,Set可以是集合,集合不一定是Set。
      特性:唯一性=>不重复=>能够对数据进行去重操作。
      
    注:集合去重,是全等匹配,===。

    创建Set
      Set 本身是一个构造函数,调用构造函数用来生成 Set 数据结构。
      关键词 标识符 = new Set();
      例 let i = new Set();
      
      Set 函数可以接受一个数组(或类似数组的对象)作为参数,用来进行数据初始化。
      let i = new Set([1, 2, 3, 4, 4]);  会得到  set{1, 2, 3, 4,}

    注:如果初始化时给的值有重复的,会自动去除。集合并没有字面量声明方式。

    Set的属性

    常用的属性就一个:size   返回 Set 实例的成员总数。
      let s = new Set([1, 2, 3]);
      console.log( s.size ); // 3
      
    Set的方法

    Set 实例的方法分为两大类:操作方法(用于数据操作)和遍历方法(用于遍历数据)。

    操作方法:
    add(value)    添加数据,并返回新的 Set 结构
    delete(value)   删除数据,返回一个布尔值,表示是否删除成功
    has(value)    查看是否存在某个数据,返回一个布尔值
    clear()      清除所有数据,没有返回值

    let set = new Set([1, 2, 3, 4, 4]);
    // 添加数据 5
    let addSet = set.add(5);
    console.log(addSet); // Set(5) {1, 2, 3, 4, 5}
    // 删除数据 4s
    let delSet = set.delete(4);
    console.log(delSet); // true
    // 查看是否存在数据 4
    let hasSet = set.has(4);
    console.log(hasSet); // false
    // 清除所有数据
    set.clear();
    console.log(set); // Set(0) {}
    

    遍历方法:

    Set 提供了三个遍历器生成函数和一个遍历方法。
    keys()     返回一个键名的遍历器
    values()    返回一个键值的遍历器
    entries()    返回一个键值对的遍历器
    forEach()   使用回调函数遍历每个成员

    let color = new Set(["red", "green", "blue"]);
    for(let item of color.keys()){
     console.log(item);
    }
    // red
    // green
    // blue
    for(let item of color.values()){
     console.log(item);
    }
    // red
    // green
    // blue
    for(let item of color.entries()){
     console.log(item);
    }
    // ["red", "red"]
    // ["green", "green"]
    // ["blue", "blue"]
    color.forEach((item) => {
     console.log(item)
    })
    // red
    // green
    // blue
    

    与数组相关操作

    Set 转数组:
    由于扩展运算符…,内部的原理也是使用的 for-of 循环,所以也可以用于操作 Set 结构。
    例如将 Set 结构转换为数组结构:

    let color = new Set(["red", "green", "blue"]);
    let colorArr = [...color];
    

    数组去重:
    扩展运算符和 Set 结构相结合,就可以去除数组的重复成员。

    let arr = [1,2,2,2,2,"2",24,5,6];
    //step1:数组转集合
    let set = new Set(arr);//已经去掉重复值,当前不是数组,而集合  Set { 1, 2, '2', 24, 5, 6 }
    //step2:集合转数组
    arr = [...set];//[ 1, 2, '2', 24, 5, 6 ]
    

    扩展

    let num1 = new Set([1, 2, 3, 4]);
    let num2 = new Set([3, 4, 5, 6]);
    
    //并集
    let union = new Set([...num1,...num2]);
    console.log(union);//Set { 1, 2, 3, 4, 5, 6 }
    
    //交集
    let intersect = new Set(
        [...num1].filter(x=> num2.has(x))
    )
    console.log(intersect); //Set { 3, 4 }
    
    //差集
    let difference = new Set(
        [...num1].filter(x => !num2.has(x))
    )
    console.log(difference); //Set { 1, 2 }
    

    原文链接:https://www.cnblogs.com/jiayouba/p/11946517.html

    展开全文
  • 遍历Set集合的四种方法

    千次阅读 2019-11-10 17:44:29
    import java.util.HashSet; import java.util.Iterator; import java.util.Set;...public class set集合遍历 { public static void main(String[] args) { Set<String> set = new Ha...
    package com.wwl.generic;
    
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    
    public class set集合遍历 {
    	public static void main(String[] args) {
    		Set<String> set = new HashSet<>();
    		set.add("a");
    		set.add("b");
    		set.add("c");
    		set.add("d");
    		System.out.println(set);
    
    		getSet1(set);
    		getSet2(set);
    		getSet3(set);
    		getSet4(set);
    
    	}
    	//1.使用collection中的toArray()方法遍历
    	public static void getSet1(Set<String> set) {
    		Object[] arr = set.toArray();
    		for (int i = 0; i < arr.length; i++) {
    			String s = (String) arr[i];
    			System.out.println(s);
    		}
    	}
    	//2.使用collection中的toArray(T[] t)方法遍历
    	public static void getSet2(Set<String> set) {
    		String[] arr1 = new String[set.size()];
    		arr1 = set.toArray(arr1);
    		for (int i = 0; i < arr1.length; i++) {
    			System.out.println("----" + arr1[i]);
    		}
    	}
    	//3.使用迭代器遍历
    	public static void getSet3(Set<String> set) {
    		Iterator<String> it = set.iterator();
    		while (it.hasNext()) {
    			String next = it.next();
    			System.out.println(next);
    
    		}
    	}
    	//4.使用增强for循环(forEach)遍历.
    	public static void getSet4(Set<String> set) {
    		for (String s : set) {
    			System.out.println("======" + s);
    		}
    	}
    	/*
    	 * 注意:
    	 * 1.forEach,底层还是迭代器,只不过使用这种格式更加简洁.
    	 * 2.使用增强for,并没有拿到元素的索引,无法修改集合或者数组中的元素值.
    	 * 3.因为底层依然是迭代器,所以自遍历的时候,使用集合对象增减元素,会发生并发修改异常.
    	 * 
    	 */
    }
    

     

    展开全文
  • 四种遍历List与Set集合方法,你都知道吗? 一、遍历List与Set集合方法: 1.使用for循环遍历List与Set集合 2.使用foreach遍历List与Set集合 3.使用迭代器遍历List与Set集合 4.使用lambda表达式遍历List与Set集合 ...
  • addAll方法用来向Set集合添加另一个集合对象所包含的所有内容。 语法 boolean addAll(Collection&lt;? extends E&gt; c) 返回值:如果Set集合发生更改,则返回true。 参数:c是要添加到Set集合中的另一个...
  • Java Set.add()方法:向Set集合添加对象

    千次阅读 2022-03-02 09:46:47
    Java 集合类中的 Set.add() 方法用来向 Set 集合添加对象。如果 Set 集合中已经包含相同的对象,则不改变 Set 集合。该方法返回值为 boolean 对象,如果 Set ... //定义Set集合对象 set.add(new Date()); //向集合中
  • 特别是它不保证该顺序恒久不变”(存入该实现类对象中的元素是无序的,即在遍历该集合元素时,遍历出的元素顺序未必和向集合中添加元素的顺序一致;这次遍历出来的顺序未必和上一次遍历出来的元素顺序一致) 允许使用 ...
  • java-Set集合与equals方法

    千次阅读 2020-01-21 17:26:40
    Set方法与list的方法基本一样,输出时要用迭代 区别一:不可重复 在setSet<String> set=new HashSet<String>(); set.add("tom"); set.add("tom"); set.add("tom"); set.add("tom"); System.out....
  • Set(集合)

    千次阅读 多人点赞 2021-09-10 22:32:16
    set是ES6提供的数据结构,是值的集合, 它类似数组,但成员的值都是唯一的。 Set数据结构的创建 const s1 = new Set(); //接收参数可迭代对象(数组)初始化set const s2 = new Set([1,2,2,3,4]); console.log(s1) ...
  • 集合Set创建及方法

    千次阅读 2020-04-12 11:48:48
    1.创建Set集合 import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; public class Fire { public static void main(String[] args) { Set <String> strs=new H...
  • c++ set集合的使用方法详解

    千次阅读 2018-05-31 11:20:03
    set集合是c++ stl库中自带的一个容器,set具有以下两个特点:1、set中的元素都是排好序的2、set集合中没有重复的元素常用操作:begin() 返回set容器的第一个元素的地址end() 返回set容器的最后一个元素地址clear() ...
  • Set集合中使用add方法添加对象

    千次阅读 2021-03-14 20:02:58
    1、java.util.Set——无重复元素集合类(1)、使用add()方法set集合中添加对象1)、如果Set集合中已经给定包含相同的对象时,则不改变原来Set集合。语法 boolean add(E e)返回值:如果Set集合中不包含要添加的对象,...
  • Java集合Set用法总结

    千次阅读 2020-08-17 15:36:20
    在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。 HashSet是哈希表结构,主要利用HashMap的key来存储元素,计算插入元素的hashCode来获取元素在集合中的位置; TreeSet是红黑树结构,每一个...
  • Java中的Set集合

    千次阅读 2021-07-07 09:52:01
    一:(1)Set集合是由一串无序的,不能重复得相同类型元素构成的集合。以下是一个班级的Set集合,这个Set集合中有一些学生,这些学生是无序的,不能通过类似于List集合的序号访问。而且不能有重复的同学。 (2)提示:...
  • Java中Set集合常用方法总结

    千次阅读 2020-04-13 10:20:52
    Set集合常用方法 Set集合的部分方法与List集合中的方法有所不同 格式为: import java.util.HashSet; import java.util.Set; public class Test2 { public static void main(String[] args) { Set<String&...
  • Set集合遍历的几种方式

    千次阅读 2019-09-09 15:55:36
    所以总结一下set集合的遍历方法 import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class SetFor { public static void main(String[] args) { Set<String> ...
  • 之前我们已经对List集合进行了比较深入的分析,加下来轮到Set集合了,开干! 文章目录
  • java Set集合,HashSet类详细介绍

    千次阅读 2021-03-14 12:02:20
    下面要给大家介绍的就是java Set集合方面的内容,本文主要讲到了HashSet类的一些知识,主要包括了HashSet类的特点,HashSet类的常用构造方法重载形式以及代码演示了创建两种不同形式的HashSet对象等内容,一起来了解...
  • JAVA高级特性(三)——Set集合

    千次阅读 2021-11-06 19:11:02
    一、Set集合 1.1 Set集合的概述和特点 ——Set集合是一个存储元素不能重复的集合方式,因为存储数据的时候通过判断其元素的hashCode值,不一样再存储。 Set集合特点:是Collection集合的子类 不包含重复的...
  • 一、Set集合 1. 声明和创建Set集合 实际上 Kotlin 并没有真正为只币 平台实现任何 Set 集合类(只是通过别名借用了 Java集合框架的类),因此不推荐通过构造器创建 Set 集合,而是推荐使用 Kotlin 提供的工具函数...
  • Java集合--Set(基础)

    千次阅读 2021-03-17 13:46:27
    1.Set上一篇,我们介绍Java中的List集合。本篇,让我们继续学习...在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。HashSet是哈希表结构,主要利用HashMap的key来存储元素,计算插入元素的hash...
  • RuntimeError: Set changed size during iteration解决方法

    千次阅读 热门讨论 2020-06-01 13:50:56
    在写代码的时候报了这样一个错,有一种非常简单的解决方法,因为一般是你 set 删除了一些东西,可以使用复制一个相同的集合进行循环,这样就不会报错了,比如 for ip_port in temp_set: temp_set.remove( 可以...
  • set集合使用详解

    千次阅读 多人点赞 2020-12-18 19:11:30
    set集合使用详解 “曾经年少爱追梦,一心只想往前飞。”那会高二,刚刚接触c语言,一发不可收拾,还记得当时为了一个想法和朋友一起想到半夜。现在我还是那个少年,那个又菜又爱玩的少年。 咳咳,set集合容器,...
  • C++ STL set集合的使用

    万次阅读 2021-09-30 13:40:28
    一些涉及到集合的算法题目,可以考虑使用STL里的set来很方便地解决问题。
  • ES6 Set集合用法

    千次阅读 2017-12-16 22:30:36
    场景:近期在开发一个桌面的收银系统,开发过程中遇到这个一个问题,...首先想到的是使用集合的概念,就是ES6里面的Set结构。集合是什么意思?集合(Set)是由一组无序但彼此之间又有一定关系性的成员构成,每个成员在集
  • C++集合set的用法

    千次阅读 多人点赞 2019-07-10 09:06:54
    最近做的题都接触到了set集合),正好学习了一下,将自己的成果写一写。没有接触过的人也可以看看,表示set非常的好用。 (话说最近好久都没有写过博客了) 定义 首先我们需要一个头文件来使用set #include <...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 417,495
精华内容 166,998
关键字:

set集合的size方法