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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 七个开源的 SpringBoot 前后端分离项目,Star过千,快去收藏夹吃灰吧!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 微信公众号:江南一点雨 前后端分离已经在慢慢走进各公司的技术栈,根据松哥了解到的消息,不少公司都已经切换到这个技术栈…

    2021年6月24日
  • pythonobject类_java中所有异常类的父类

    pythonobject类_java中所有异常类的父类Object类所有类的父类,默认所有的类都继承至Object类规定了类的结构,加载方式,常用函数以前的写法:class类名(Object):pass现在的写法:class类名:pass如果有父类才编写,如果没有父类可以省掉Object类,但是也是默认继承内置函数:__new__(cls,*args,**kwargs)创建对象时自动调用的函数,主要作用是创建对象,给该对象分配空间,方便之后的的操作该函数会返回创建…

    2022年10月27日
  • idea 2022.01 激活码-激活码分享2022.02.28

    (idea 2022.01 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40ZKSWCX8G-eyJsaWNlb…

    2022年4月1日
  • 手机的分辨率和电脑的分辨率_手机屏幕分辨率大全

    手机的分辨率和电脑的分辨率_手机屏幕分辨率大全电脑分辨率分辨率比例是否淘汰1920*108016:9主流1366*76816:9主流1600*90016:9非主流2560*160016:10非主流1920*120016:10非主流1440*90016:10非主流1680*105016:10非主流1024*7684:3非主流800*6004:3非主流比例=高度/宽度手机分辨率ios型号分辨率像素密度(pp…

    2022年8月13日
  • ViewPager 全面总结

    ViewPager 全面总结一、简介Viewpager,视图翻页工具,提供了多页面切换的效果。Android3.0后引入的一个UI控件,位于v4包中。低版本使用需要导入v4包,但是现在我们开发的APP一般不再兼容3.0及以下的系统版本,另外现在大多数使用Androidstudio进行开发,默认导入v7包,v7包含了v4,所以不用导包,越来越方便了。Viewpager使用起来就是我们通过创建adapter给它填充多…

    2022年7月22日
  • cmd命令ping不是内部或外部命令_ping命令次数

    cmd命令ping不是内部或外部命令_ping命令次数介绍ping命令是一个用来测试能不能与另一台主机交换数据包的命令,通常我们会用ping命令测试域名可达性。1.语法:ping+ip(v4)或者域名实例一:通过ping百度域名,以此来看网络是否正常连接@echooffpingwww.baidu.com>nuliferrorlevel0(echo网络连接正常)elseecho网络连接异常pauseexit2.参数,可调出cmd窗口输入ping/?列出具体的参数介绍几个常用的参数:1.ping/t一直ping一

    2022年9月22日

发表回复

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

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