精华内容
下载资源
问答
  • 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
    	}
    }
    
    展开全文
  • 四种遍历List与Set集合方法,你都知道吗? 一、遍历List与Set集合方法: 1.使用for循环遍历List与Set集合 2.使用foreach遍历List与Set集合 3.使用迭代器遍历List与Set集合 4.使用lambda表达式遍历List与Set集合 ...

    四种遍历List与Set集合的方法,你都知道吗?

    一、遍历List与Set集合的方法:

    1.使用for循环遍历List与Set集合

    2.使用foreach遍历List与Set集合

    3.使用迭代器遍历List与Set集合

    4.使用lambda表达式遍历List与Set集合

    二、我们先来定义一个List集合和Set集合

    List<String> list = new ArrayList<String>();
    		// 给List集合赋值
    		list.add("1.脸皮是如何变厚的");
    		list.add("2.女朋友养成攻略");
    		list.add("3.一本钢铁直男秘籍");
    		list.add("4.舔狗的世界你了解多少");
    		list.add("5.那一夜,哪一夜");
    
    //定义一个set集合
    		Set<String> set = new HashSet<String>();
    		//给set集合赋值
    		set.add("1.脸皮是如何变厚的");
    		set.add("2.女朋友养成攻略");
    		set.add("3.一本钢铁直男秘籍");
    		set.add("4.舔狗的世界你了解多少");
    		set.add("5.那一夜,哪一夜");
    

    三、接着我们分别使用四种方法遍历List集合

    1.使用for循环遍历List集合

    // 遍历集合
    		System.out.println("=====1.使用for循环遍历List集合=====");
    		for (int i = 0; i < list.size(); i++) {
    			System.out.println(list.get(i));
    		}
    

    2.使用foreach遍历List集合

    System.out.println("=====2.使用foreach遍历List集合=====");
    		for (String str : list) {
    			System.out.println(str);
    		}
    

    3.使用迭代器遍历List集合

    System.out.println("=====3.使用迭代器遍历List集合=====");
    		// 1.根据集合获取对应的迭代器
    		Iterator<String> it = list.iterator();
    		// 2.判断是否有下一个元素,如果有的话就返回true并且执行循环,
    		// 如果没有,说明已经取到迭代器的末尾
    		while (it.hasNext()) {
    			String string = it.next();
    			System.out.println(string);
    		}
    

    4.使用lambda表达式遍历List集合

    System.out.println("=====4.使用lambda表达式遍历List集合(一)=====");
    		list.forEach(n -> System.out.println(n));
    		System.out.println("=====4.使用lambda表达式遍历List集合(二)=====");
    		list.forEach(System.out::println);
    
    

    5.运行效果图

    在这里插入图片描述

    四、然后我们分别使用四种方法遍历Set集合

    1.使用foreach遍历set集合

    //使用for遍历Set
    		System.out.println("=========1.使用foreach遍历set集合===========");
    		for(String str1:set) {
    			System.out.println(str1);
    		}
    

    2.使用迭代器遍历Set集合

    //使用迭代器遍历Set
    		System.out.println("=========2.使用迭代器遍历Set集合===========");
    		//根据集合获取对应的迭代器
    		Iterator<String> it = set.iterator();
    		while(it.hasNext()) {
    			//定义一个字符串接收遍历的集合内容
    			String str2=it.next();
    			System.out.println(str2);
    		}
    

    3.使用lambda遍历Set集合

    //使用lambda遍历Set
    		System.out.println("=========3.使用lambda遍历Set集合(一)===========");
    		set.forEach(n->System.out.println(n));
    		//使用lambda遍历Set
    		System.out.println("=========3.使用lambda遍历Set集合(二)===========");
    		set.forEach(System.out::println);
    

    4.使用for循环遍历Set集合

    //使用for遍历集合
    		System.out.println("=========4.使用for循环遍历Set集合===========");
    		for (int i = 0; i < set.size()-(set.size()-1); i++) {
    			System.out.println(set);
    		}
    

    5.运行效果图

    在这里插入图片描述
    在这里插入图片描述
    今日分享就到这儿了,若有不足之处,欢迎各位业界大佬提出宝贵的意见!
    在这里插入图片描述

    展开全文
  • c++ set集合的使用方法详解

    万次阅读 多人点赞 2017-04-25 15:15:34
    set集合是c++ stl库中自带的一个容器,set具有以下两个特点: 1、set中的元素都是排好序的 2、set集合中没有重复的元素 常用操作: begin() 返回set容器的第一个元素的地址 end() 返回set容器的最后一个元素...

    set集合是c++ stl库中自带的一个容器,set具有以下两个特点:

    1、set中的元素都是排好序的

    2、set集合中没有重复的元素

    常用操作:

    begin()    返回set容器的第一个元素的地址

    end()      返回set容器的最后一个元素地址

    clear()    删除set容器中的所有的元素

    empty()     判断set容器是否为空

    max_size()   返回set容器可能包含的元素最大个数

    size()      返回当前set容器中的元素个数

    erase(it) 删除迭代器指针it处元素

    insert(a) 插入某个元素

    #include<stdio.h>
    #include<set>
    using namespace std;
    int main()
    {
    	set<int>s;
    	s.insert(3); 
    	s.insert(1);
    	s.insert(2);
    	s.insert(1);
    	set<int>::iterator it;            
    	for(it=s.begin();it!=s.end();it++)  //使用迭代器进行遍历 
    	{
    		printf("%d\n",*it);
    	}
    	return 0;
    }
    //输出结果 : 1 2 3     一共插入了4个数,但是集合中只有3个数并且是有序的,可见之前说过的set集合的两个特点,有序和不重复。 

    当set集合中的元素为结构体时,该结构体必须实现运算符‘<’的重载

    #include<stdio.h>
    #include<set>
    #include<string>
    using namespace std;
    struct People
    {
    	string name;
    	int age;
    	bool operator <(const People p) const  //运算符重载 
    	{
    		return age<p.age;       //按照年龄由小到大进行排序 
    	}
    }; 
    int main()
    {	
    	set<People>s;
    	s.insert((People){"张三",14});
    	s.insert((People){"李四",16});
    	s.insert((People){"王二麻子",10});
    	set<People>::iterator it;            
    	for(it=s.begin();it!=s.end();it++)  //使用迭代器进行遍历 
    	{
    		printf("姓名:%s 年龄:%d\n",(*it).name.c_str(),(*it).age);
    	}
    	return 0;
    }
    /*
    输出结果
     姓名:王二麻子 年龄:10
    姓名:张三 年龄:14
    姓名:李四 年龄:16 
    */ 

    可以看到结果是按照年龄由小到大的顺序排列。

    展开全文
  • addAll方法用来向Set集合添加另一个集合对象所包含的所有内容。 语法 boolean addAll(Collection&lt;? extends E&gt; c) 返回值:如果Set集合发生更改,则返回true。 参数:c是要添加到Set集合中的另一个...

    addAll方法用来向Set集合添加另一个集合对象所包含的所有内容。

    语法 boolean addAll(Collection<? extends E> c)

    返回值:如果Set集合发生更改,则返回true。

    参数:c是要添加到Set集合中的另一个集合对象。

    示例 本示例创建一个Set集合,为该集合添加一些对象,然后再创建第二个Set集合,同样添加一些对象,最后调用addAll方法将第二个Set集合添加到第一个Set集合中,并且分别输出调用addAll方法前后Set集合的大小。

    public static void main(String[] args) {
    
        Set set1=new HashSet();
        set1.add(new Date());    //向列表中添加数据
    
        set1.add("apple");     //向列表中添加数据
    
        set1.add(new Integer(3));   //向列表中添加数据
    
        set1.add(new Socket());    //向列表中添加数据
    
        int size=set1.size();
    
        System.out.println("Set1集合的大小为:" + size);
    
        Set set2=new HashSet();
        set2.add("book");     //向列表中添加数据
    
        set2.add(new Long(3));    //向列表中添加数据
    
        int size2=set2.size();
    
        System.out.println("Set2集合的大小为:" + size2);
    
        set1.addAll(set2);
    
        System.out.println("合并后Set1集合的大小为:" + set1.size());
    
    }
    
    展开全文
  • Set集合 去重和比较方法

    万次阅读 多人点赞 2018-05-22 20:43:29
    Set集合特点: 无序(没有下标) 集合中的元素不重复HashSethashset具有去重功能例: 创建一个hashset 保存 f f a a b b d d HashSet&lt;String&gt; set = new HashSet&lt;&gt;(); set.add("f&...
  •  很多时候我们把Set叫做 集合,但是,Set可以是集合集合不一定是Set。  特性:唯一性=>不重复=>能够对数据进行去重操作。   注:集合去重,是全等匹配,===。 创建Set  Set 本身是一个构造函数,调用构造...
  • Set集合

    千次阅读 2018-08-21 23:07:54
    第八篇 Set集合: 特点:无序,不重复。 存储时采用了hash算法机制,计算存储位置。 HashCode方法: ...equals方法我们用来判断集合中的元素是否重复,hashCode方法我们在使用Set集合时,必须要...
  • java中set集合的使用方法

    千次阅读 2018-04-19 01:27:44
    原文地址https://blog.csdn.net/u013399093/article/details/47749823 原文地址... 1.HashSet  java.util.HashSet类实现了Java.util.Set接口。 它有如下特点:  
  • JavaScript进阶之浅谈Set集合

    千次阅读 2019-06-04 14:57:43
    JavaScript进阶之浅谈Set集合Set集合概述Set集合的属性和方法(常用)size属性add方法delete方法has方法clear方法forEach方法 Set集合概述 Set集合和Arry数组很相似,但是Set集合存储的是key也就是说Set集合中不可以...
  • Set集合中使用add方法添加对象

    万次阅读 2017-07-30 13:01:15
    (1)、使用add()方法set集合中添加对象 1)、如果Set集合中已经给定包含相同的对象时,则不改变原来Set集合。 语法 boolean add(E e)  返回值:如果Set集合中不包含要添加的对象,则添加对象并返回...
  • 使用Set集合对List集合进行去重

    万次阅读 2018-03-22 23:00:21
    使用Set集合对List集合进行去重前段时间正好遇到这样一个需求:我们的支付系统从对方系统得到存储明细对象的List集合,存储的明细对象对象的明细类简化为如下TradeDetail类,需求是这样的,我要对称List集合进行去重...
  • Set集合和Map集合

    千次阅读 2019-12-07 10:05:35
    Set接口和Map接口 回顾 1 集合概念,用来存储一组数据的容器。和数组类似,数组是长度固定的,集合长度可以变化。数组能存储基本类型和引用类型,集合只能存储引用类型。 2 Collection接口,父接口, add() remove()...
  • 集合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...
  • 特别是它不保证该顺序恒久不变”(存入该实现类对象中的元素是无序的,即在遍历该集合元素时,遍历出的元素顺序未必和向集合中添加元素的顺序一致;这次遍历出来的顺序未必和上一次遍历出来的元素顺序一致) 允许使用 ...
  • 本文实例讲述了JS集合set类的实现与使用方法。分享给大家供大家参考,具体如下: js集合set类的实现 /*js集合set类的实现*/ function Set() { this.dataStore = []; this.add = add;//新增元素 this.remove = ...
  • Set集合之TreeSet集合

    万次阅读 多人点赞 2018-09-07 16:06:15
    TreeSet集合:可以对Set集合中的元素进行排序。是不同步i的。  判断元素唯一性的方式:根据比较方法的返回值来判断。是0(零)就存入集合,不是0就不存。因为Set集合是不能有重复的元素,无序。  既然是无序的...
  • Java中List集合与Set集合

    千次阅读 2019-07-02 00:23:42
    2、List 接口中常用的方法 3、List 集合存储数据结构 4、ArrayList 集合ArrayList 集合是最常用的集合,是用存储数据结构,元素增删慢,查找快。 5、LinkedList 集合 6、Vector 集合 二、Set 接口 1、HashSet ...
  • Set集合用法

    千次阅读 2018-12-17 15:58:30
    性质 底层采用哈希表算法,无序不可重复 数组去重 ... Set&lt;String&gt; set = new HashSet&lt;&gt;(); for(int i = 0; i &lt; array.length; i++){ set.add(array[i]);...
  • Set集合详解

    千次阅读 2017-04-07 17:50:36
    使用Set集合的主要原因是因为Set集合里面没有重复的元素。 Set集合有三个常见的实现类:HashSet,TreeSet,LinkedHashSet。 简单的说,如果你关注性能,应该使用HashSet; 如果你需要一个有序的Set集合,应该使用...
  • 深入Java源码剖析之Set集合

    千次阅读 2019-08-02 14:56:52
    Set代表无序集合,元素无序且不可重复 Map集合存储键值对 那么本篇文章将从源码角度讨论一下无序集合Set。 HashSet HashSet实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;...
  • c实现set集合

    千次阅读 2016-09-19 11:55:21
    下面咱们用链表来实现set相信有了前面的基础我们可以很容易的实现set集合需要引入我的链表的list.c和list.h头文件// // set.h // set // // Created by bikang on 16/9/18. // Copyright (c) 2016年 bikang. All ri
  • 本文主要包括以下内容: ...Set集合是对数学中集合的抽象,Set集合有两个特性: Set集合里没有重复元素 Set集合是无序集合 Set集合的基本操作 插入 删除 Set是否为空 Set是否包含某个元素 Set元素个...
  • 【用set集合去重复数据,重写equals还是不成功的问题解决思路在文章最后】 需求描述: 因业务需要,通过复杂的代码逻辑从数据库取出数据放入List集合中,涉及多次从访问数据库取出数据放入List集合中,其中会取到...
  • List集合和Set集合的区别

    千次阅读 2019-06-09 22:06:51
    开发工具与关键技术:MyEclipse 10、list集合和Set集合的区别 作者: 撰写时间:2019年06月08日   List集合的详细特点:https://blog.csdn.net/weixin_43741599/article/details/91357999   Set集合类似于一个...
  • Java Set集合的详解

    万次阅读 多人点赞 2016-07-26 22:39:17
    Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素 用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。 对象的相等性  引用到堆上同一个对象的两个引用是相等的...
  • 在写代码的时候报了这样一个错,有一种非常简单的解决方法,因为一般是你 set 删除了一些东西,可以使用复制一个相同的集合进行循环,这样就不会报错了,比如 for ip_port in temp_set: temp_set.remove( 可以...
  • Set集合与List集合的区别

    万次阅读 2019-06-17 11:00:21
    1:**Set 里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是仅仅是相同)的对象,**即假设 Set 集合中有了一个 A 对象,现在我要向 Set 集合再存入一个 B 对象,但 B 对象与 A 对象 equals 相等,则 ...
  • C++set集合

    千次阅读 2016-08-09 20:23:10
    set集合容器: 调用头文件: #include&lt;set&gt; using namespace std; 详细用法(部分): set&lt;int&gt; t ------ 定义一个int类型的容器,(默认)里面元素从小到大 set&lt;int, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 360,261
精华内容 144,104
关键字:

set集合的size方法