set集合的特点

set集合的特点set集合的特点A:存入集合的顺序和取出集合的顺序不一致B:没有索引C:存入集合的元素没有重复set接口的实现类常用的有HashSet和TreeSet类。语法格式如下:Set<String>set1=newHashSet<String>();Set<String>set2=newTreeSe…

大家好,又见面了,我是你们的朋友全栈君。

set集合的特点

    A:存入集合的顺序和取出集合的顺序不一致

    B:没有索引

    C:存入集合的元素没有重复

 

set接口的实现类常用的有HashSet和TreeSet类。语法格式如下:

Set<String> set1 = new HashSet<String>();

Set<String> set2 = new TreeSet<String>();

1.HashSet的使用

 public class HashSetDemo {
	public static void main(String[] args) {

		//创建集合对象
		HashSet<Student> hs = new HashSet<Student>();

		//创建元素对象
		Student s = new Student("zhangsan",18);
		Student s2 = new Student("lisi",19);
		Student s3 = new Student("lisi",19);

		//添加元素对象
		hs.add(s);
		hs.add(s2);
		hs.add(s3);

		//遍历集合对象
		for (Student student : hs) {
			System.out.println(student);
		}	 
	}	 
}

 

 

2.HashSet唯一性原理

   规则:新添加到HashSet集合的元素都会与集合中已有的元素一一比较

   首先比较哈希值(每个元素都会调用hashCode()产生一个哈希值)

   如果新添加的元素与集合中已有的元素的哈希值都不同,新添加的元素存入集合

   如果新添加的元素与集合中已有的某个元素哈希值相同,此时还需要调用equals(Object obj)比较

   如果equals(Object obj)方法返回true,说明新添加的元素与集合中已有的某个元素的属性值相同,那么新添加的元素存入集合

   如果equals(Object obj)方法返回false, 说明新添加的元素与集合中已有的元素的属性值都不同, 那么新添加的元素存入集合

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135732.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [Elasticsearch]如何通过python操作ES数据库 pythonElasticsearch入门

    [Elasticsearch]如何通过python操作ES数据库 pythonElasticsearch入门[Elasticsearch]如何通过python操作ES数据库pythonElasticsearchElasticsearch基本介绍Elasticsearch入门安装与启动python操作ES数据库连接ES数据库无用户名密码状态有密码创建索引(ES中的索引即数据库)插入数据单条数据多条数据查询数据查询结果返回参数各字段含义最直接的查询方法用body指定条件模糊查询term精确查询multi_match,多字段查询prefix,前缀查询wildcard,通配符查询regexp,正则匹配bool,多条

    2022年5月8日
    309
  • python 安装第三方包-安装失败(pycharm/ anaconda navigator)

    python 安装第三方包-安装失败(pycharm/ anaconda navigator)安装/卸载第三包:方法一:pipinstall包名;pipuninstall包名。方法二:pipinstall下载路径\包名.whl(需要先下载第三包:地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/,找到所需的包并下载保存),如下例安装gensim包所示:方法三:若在pycharm编辑中,则在菜单setting/project…

    2022年8月25日
    2
  • phpstorm 2021.7.20 激活码【中文破解版】

    (phpstorm 2021.7.20 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlML…

    2022年3月21日
    47
  • Python程序中的进程操作

    之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程

    2022年3月29日
    59
  • 常用的前端JavaScript方法封装

    常用的前端JavaScript方法封装1、输入一个值,返回其数据类型functiontype(para){returnObject.prototype.toString.call(para)}2、数组去重functionunique1(arr){return[…newSet(arr)]}functionunique2(arr){varobj={};returnarr.filter(ele=>{if(!obj[ele])..

    2022年7月11日
    13
  • 天翼网关设置为桥接模式_天翼网关桥接模式

    天翼网关设置为桥接模式_天翼网关桥接模式前两年将家里的电信宽带升级到光纤,光猫也随之进行了升级,当时升级好后,电信工作人员介绍说新的光猫带有wifi功能,如果连接路由器可以不用配置路由器的拨号设置,说是升级到光纤后可以直接连接网线上网,不用再拨号了。当时也没怎么在意,网线连上路由器之后,果然没做宽带的账号设置就可以正常上网了。最近在使用一个软件客户端的时候需要设置宽带拨号的方式更换IP才能使用某个功能,然后才发现家里的宽带升级到光纤后,无法使用原来的拨号方式上网了。通过网络搜索,是因为升级光纤后,将连接的模式设置为路由模式,导致无法使用拨号上

    2022年10月27日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号