zoukankan      html  css  js  c++  java
  • 【Java面试题】39 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()来判断。

  • 相关阅读:
    jquery 初篇
    python作用域和js作用域的比较
    javascript作用域
    第三篇、dom操作续
    dom事件
    第二篇 dom内容操作之value
    第三篇、变量
    第二篇、常量
    Node.js
    测试用例
  • 原文地址:https://www.cnblogs.com/guweiwei/p/6637120.html
Copyright © 2011-2022 走看看