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()? 它们有何区别?相关推荐

  1. java set如何判断重复_set 怎么用iterator()方法来区分重复与否

    import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class SetTest { // ...

  2. 面试3 -- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

    1.==和equals()的区别 ==是判断对象的内存地址,s1==s2,s2的引用的对象跟s1是同一个. Object类的equals 也是判断对象的内存地址.底层也是用的==. 有一些类复写了eq ...

  3. 15.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

    15.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 1.什么是Set?(what) Set是Collection容器的一个子接口,它不允 ...

  4. 12、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是equals()? 它们有何区别?

    12.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是equals()? 它们有何区别? Set里的元素是不能重复的,那么用iterator()方法来区分重复与否.Equ ...

  5. 【Java面试题】39 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?...

    1.什么是Set?(what) Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象. 2.如何来区分重复与否呢?(how) " 用 itera ...

  6. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢

    1.什么是Set?(what) Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象. 2.如何来区分重复与否呢?(how) " 用 itera ...

  7. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?

    Set里的元素是不能重复的,元素重复与否是使用equals()方法进行判断的. ==和equal区别也是考烂了的题,这里再重复说一下: ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所 ...

  8. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢 是用==还是equals() 它们有何区别

    Set里的元素是不能重复的,元素重复与否是使用equals()方法进行判断的. equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配 ...

  9. HashSet里的元素是不能重复的,那用什么方法来区分重复与否呢?

    解: 当往集合里添加元素时,调用add(object)方法时,首先会调用object的hashcode()方法判断hashcode是否存在,不存在时,则直接插入元素. 如果已存在则调用object对象 ...

最新文章

  1. 分布式 RPC 框架
  2. 知识管理系统Data Solution研发日记之六 窗体设计器
  3. c++的引用是什么意思?怎么回事?
  4. Strut2开发经验总结
  5. tray filled with nike air max light snacks
  6. java txt转换excel_Java实现将txt文件转成xls文件的方法
  7. 77GHz汽车防撞雷达信号处理设计与实现
  8. unity摄影机depth模式_[蛮牛教程] Unity3D 浅析-Camera(摄像机)
  9. 语音社交APP系统开发,提供纯粹的语音社交
  10. 网络挖掘初探索(2)_NEO4J图可视化
  11. Android中控件设置英文文本内容时区分大小写
  12. php dingo和jwt,三、Laravel5.4+Dingo+JWT 开发API
  13. html5 audio左侧,HTML5之Audio(四)—— 左右声道
  14. 共享打印机客户端报错因为文件共享不安全需要SMB1协议
  15. matlab 利用polyfitpolyval函数进行基线矫正【matlab程序】
  16. [可联网]ps4共享屏幕到笔记本
  17. NLP 实战(10): CSDN 领域榜标签分组更新
  18. window删除多余的操作系统
  19. CCF-201709-2(公共钥匙盒)
  20. 统一身份认证系统的简单看法

热门文章

  1. 一个比较全的vim指令记录
  2. 真的是神坑啊,Eureka服务无法注册的问题
  3. Storm Trident 详细介绍
  4. 查快递物流怎么查,用最新最快的查询物流的方法
  5. Kubernetes 集群DNS选择:CoreDNS vs Kube-DNS
  6. change()事件及val()/html()方法不会触发change事件
  7. 谈计算(cpu)密集型和io密集型与php性能优化
  8. 【Pytorch】| Pytorch中softmax的dim的详细总结
  9. 技术干货|昇思MindSpore 1.5版本中的亲和算法库——MindSpore Boost
  10. Python学习Day08