博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Set集合和实现类
阅读量:4467 次
发布时间:2019-06-08

本文共 1125 字,大约阅读时间需要 3 分钟。

1 HashSet是主要的实现类,Set中常用的方法都是Collection下定义的。

2 无序性:无序性!=随机性。指元素在底层存储的位置是无序的

   不可重复性:加入相同元素时,后面的元素不能加入进去

3 注意:要求加进Set中的元素,一定要重写equals和hashCode方法

   才能保证Set中元素的不可重复性。

4 Set中元素如何存储的?使用哈希算法,如同安排学生坐在教室的不同位置,元素存放在内存的不同位置。

5 当向Set中添加对象时,首先调用此对象所在类的hashCode(),计算此对象的哈希值,此哈希值决定了此对象在Set中的存储位置。若此位置没有对象存储,则这个对象直接存储在此位置,若此位置已有对象存储,再通过equals()比较两个对象是否相同,如果相同,后面的元素不能添加进来。

要求:hashcode()方法值与equals方法一致。

package lianxi2;import java.util.HashSet;import java.util.Set;import org.junit.Test;public class TestSet {@Test    public void test1(){      Set set = new HashSet();      set.add(23);      set.add(55);      set.add(new String("AA"));         //重写了equals和hashcode方法      set.add(new String("AA"));      Student stu1 = new Student("001","xi");   //没重写时,用object的equals方法比较的是地址值      Student stu2 = new Student("001","xi");  //重写后,后面元素不能添加了      System.out.println(stu1.hashCode());      System.out.println(stu2.hashCode());      set.add(stu1);      set.add(stu2);      System.out.println(set.size());      System.out.print(set);    }}

结果:

1482401

1482401
4
[AA, 55, 23, Student [id=001, name=xi]]

转载于:https://www.cnblogs.com/yjtm53/p/4147969.html

你可能感兴趣的文章
impdp报错: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误
查看>>
\n ^ \t的使用
查看>>
css盒模型
查看>>
探索式测试:测试自动化
查看>>
用 UIWebView 代替 UITextView,解决行间距问题
查看>>
npm和Node.js简介
查看>>
Spring AOP无法拦截Controller的原因
查看>>
Windows双系统
查看>>
Microsoft Project项目管理工具
查看>>
软件设计师-算法
查看>>
小米手机安装Google框架
查看>>
honpeyhonepy
查看>>
netaddr网络地址工具python
查看>>
OSI7层模型和网络排错、网络安全
查看>>
hash文件-对文件进行数字签名
查看>>
TCP_Wrappers基础知识介绍
查看>>
Central Post Office (Shiraz University Local Contest 2011 ) 树状dp
查看>>
51Nod - 1031 骨牌覆盖
查看>>
回顾环信使用
查看>>
JavaScript--函数对象的属性caller与callee
查看>>