Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
是用==还是equals()? 它们有何区别?
1、什么是Set?(what)
Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象。
2、如何来区分重复与否呢?(how)
“ 用 iterator() 方法来区分重复与否 ”,这是在网上流传的答案,个人认为这是个错误的答案。API中写的很明白:“set 不包含满足
e1.equals(e2)
的元素对 e1
和 e2
”,由此可见回答使用equals()区分更合适。
3、为什么用equals()而不用==来区分?(why)
应该从它俩的区别谈起,==是用来判断两者是否是同一对象(同一事物),而equals是用来判断是否引用同一个对象。再看一下Set里面存的是
对象,还是对象的引用。根据java的存储机制可知,set里面存放的是对象的引用,所以当两个元素只要满足了equals()时就已经指向同一个对象,
也就出现了重复元素。所以应该用equals()来判断。
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?相关推荐
- java set如何判断重复_set 怎么用iterator()方法来区分重复与否
import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class SetTest { // ...
- 面试3 -- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
1.==和equals()的区别 ==是判断对象的内存地址,s1==s2,s2的引用的对象跟s1是同一个. Object类的equals 也是判断对象的内存地址.底层也是用的==. 有一些类复写了eq ...
- 15.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
15.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 1.什么是Set?(what) Set是Collection容器的一个子接口,它不允 ...
- 12、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是equals()? 它们有何区别?
12.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是equals()? 它们有何区别? Set里的元素是不能重复的,那么用iterator()方法来区分重复与否.Equ ...
- 【Java面试题】39 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?...
1.什么是Set?(what) Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象. 2.如何来区分重复与否呢?(how) " 用 itera ...
- Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢
1.什么是Set?(what) Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象. 2.如何来区分重复与否呢?(how) " 用 itera ...
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?
Set里的元素是不能重复的,元素重复与否是使用equals()方法进行判断的. ==和equal区别也是考烂了的题,这里再重复说一下: ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所 ...
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢 是用==还是equals() 它们有何区别
Set里的元素是不能重复的,元素重复与否是使用equals()方法进行判断的. equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配 ...
- HashSet里的元素是不能重复的,那用什么方法来区分重复与否呢?
解: 当往集合里添加元素时,调用add(object)方法时,首先会调用object的hashcode()方法判断hashcode是否存在,不存在时,则直接插入元素. 如果已存在则调用object对象 ...
最新文章
- 分布式 RPC 框架
- 知识管理系统Data Solution研发日记之六 窗体设计器
- c++的引用是什么意思?怎么回事?
- Strut2开发经验总结
- tray filled with nike air max light snacks
- java txt转换excel_Java实现将txt文件转成xls文件的方法
- 77GHz汽车防撞雷达信号处理设计与实现
- unity摄影机depth模式_[蛮牛教程] Unity3D 浅析-Camera(摄像机)
- 语音社交APP系统开发,提供纯粹的语音社交
- 网络挖掘初探索(2)_NEO4J图可视化
- Android中控件设置英文文本内容时区分大小写
- php dingo和jwt,三、Laravel5.4+Dingo+JWT 开发API
- html5 audio左侧,HTML5之Audio(四)—— 左右声道
- 共享打印机客户端报错因为文件共享不安全需要SMB1协议
- matlab 利用polyfitpolyval函数进行基线矫正【matlab程序】
- [可联网]ps4共享屏幕到笔记本
- NLP 实战(10): CSDN 领域榜标签分组更新
- window删除多余的操作系统
- CCF-201709-2(公共钥匙盒)
- 统一身份认证系统的简单看法
热门文章
- 一个比较全的vim指令记录
- 真的是神坑啊,Eureka服务无法注册的问题
- Storm Trident 详细介绍
- 查快递物流怎么查,用最新最快的查询物流的方法
- Kubernetes 集群DNS选择:CoreDNS vs Kube-DNS
- change()事件及val()/html()方法不会触发change事件
- 谈计算(cpu)密集型和io密集型与php性能优化
- 【Pytorch】| Pytorch中softmax的dim的详细总结
- 技术干货|昇思MindSpore 1.5版本中的亲和算法库——MindSpore Boost
- Python学习Day08