equals方法在字符串和列表中的使用

2024-02-19

在oracle java文档中, list 中的 equals() 表示如果两个列表包含相同的元素,则它们被定义为相等。 但从对象类 equals() 仅当它们的哈希码相等时才返回 true。 这意味着列表中的 equals() 覆盖对象类中的 equals 方法。对于字符串中的 equals() 也是一样的。只要它们具有相同的字符,它们就返回 true。

所以每当我将类型声明为 String 或使用像 arraylist 这样的列表类 equals() 会自动被覆盖,对吧?


equals() 会自动被覆盖,对吗?

Answer :是的绝对正确,如果您询问被覆盖.equals()方法在运行时自动调用

**Object类是java中每个类的父类,它由以下部分组成.equals()比较对象引用的方法

But String类,包装类(Integer,Long etc..)和集合类(ArrayList, hashSet etc..)被覆盖.equals()比较对象内容而不是对象引用的方法

为了避免混淆,这是一个清晰的例子

public class Main2 {
public static void main(String[] args) {
    List<String> l1 = new ArrayList<>();
    l1.add(new String("hello"));
    List<String> l2 = new ArrayList<>();
    l2.add(new String("hello"));

    System.out.println(l1.equals(l2)); //true

    List<Test> t1 = new ArrayList<>();
    t1.add(new Test());
    List<Test> t2 = new ArrayList<>();
    t2.add(new Test());

    System.out.println(t1.equals(t2)); //false
    }
}

 class Test{
  }

在上面的例子中比较List<String>将返回 true 因为.euqals()中的方法String被覆盖以比较内容

但在比较的同时Lits<Test>即使两个对象都是空的,也会返回 false,因为.equals()中的方法Test默认情况下,类不会被覆盖,它将调用Object class .equals()方法将对象的引用进行比较== does

谷歌问题对象类 equals 方法比较 hashcode ?

Answer

java.lang.Object 类要求在对象上调用 hashCode() 方法时,使用 equals() 方法比较相等的任何两个对象必须生成相同的整数结果 [API 2014]。 equals() 方法用于确定对象实例之间的逻辑等价性。2018 年 2 月 12 日

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

equals方法在字符串和列表中的使用 的相关文章

  • 如何使用固定数量的工作线程实现简单线程

    我正在寻找最简单 最直接的方法来实现以下内容 主程序实例化worker 执行任务的线程 Only n任务可以同时运行 When n已达到 不再有工人 开始直到计数 正在运行的线程回落到下方n 我觉得Executors newFixedThr
  • 在Java中将*s打印为三角形?

    我在 Java 课程中的作业是制作 3 个三角形 一份左对齐 一份右对齐 一份居中 我必须为什么类型的三角形制作一个菜单 然后输入需要多少行 三角形必须看起来像这样 到目前为止 我能够完成左对齐的三角形 但我似乎无法获得其他两个 我尝试用谷
  • 如何将 JSpinner 的值设置为特定日期

    我有一个JSpinner我添加到JPanel我想将其时间设置为 GregorianCalendar calendar JSpinner spinner new JSpinner spinner setModel model pom add
  • 如何使用 Maven Failsafe 插件运行 JUnit 5 集成测试?

    当我运行命令时 Maven Failsafe 插件找不到我的 JUnit 5 集成测试mvn clean failsafe integration test 尽管它可以找到文件 我有junit jupiter api and junit j
  • 单元测试组合服务方法

    我正在为一个类编写 junit 单元测试 该类使用以下方法实现公开的接口 public Set
  • 如何在log4j的配置文件中为文件附加器提供环境变量路径

    我有一个log4j xml配置文件 和一个RollingFileAppender我需要提供用于存储日志的文件路径 问题是我的代码将作为可运行的 jar 部署在 Unix 机器上 所以如果我传递这样的参数 value logs message
  • Java 读取大文本文件时出现 OutOfMemoryError

    我是 Java 新手 正在读取非常大的文件 需要一些帮助来理解问题并解决它 我们有一些遗留代码 必须对其进行优化才能正常运行 文件大小仅在 10mb 到 10gb 之间变化 只有当文件开始大小超过 800mb 时才会出现启动问题 Input
  • 如何在Java中优雅地处理SIGKILL信号

    当程序收到终止信号时如何处理清理 例如 我连接到一个应用程序 希望任何第三方应用程序 我的应用程序 发送finish注销时的命令 发送该信息最好说什么finish当我的应用程序被破坏时的命令kill 9 编辑1 kill 9无法被捕获 谢谢
  • 项目缺少所需的注释处理库

    我的 Eclipse IDE 突然在问题视图中显示 xxxx 项目缺少所需的注释处理库 xxxx M2 REPO 中的一些旧 jar 我用谷歌搜索 没有找到任何答案 为什么我的项目使用旧的 jar 以及错误来自哪里 To remove th
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • Kafka Java Consumer 已关闭

    我刚刚开始使用卡夫卡 我面临着消费者的一个小问题 我用Java写了一个消费者 我收到此异常 IllegalStateException 此消费者已关闭 我在以下行中遇到异常 ConsumerRecords
  • 使用 JAX-WS 的 WebLogic 中没有模式导入的单个 WSDL

    如何使用 JAX WS 配置由 WebLogic 10 3 6 生成的 Web 服务 以将对象架构包含在单个 WSDL 文件声明 而不是导入声明 中 示例代码 界面 import javax ejb Local Local public i
  • 正则表达式在 Velocity 模板中不起作用

    我在 Test java 中尝试过这个 String regex lt s br s s gt String test1 lt br gt System out println test replaceAll regex 但是当我在速度模板
  • Android volley使用RequestFuture.get()时出现超时异常

    在我的片段中 我尝试使用 TMDB 的开放电影数据库来获取有关 正在播放 电影的详细信息 如果我使用 RequestFuture get time TimeUnit 方法来执行此齐射请求 我总是会收到超时错误 如果我在 Safari 中手动
  • 将现有 eclipse 项目导出到 war 文件时出现“模块名称无效”

    我正在尝试将现有 Eclipse 项目导出到 war 文件 但无论我在 WAR Export 对话框页面中输入什么 系统总是返回 模块名称无效 我不知道如何解决这个问题 谢谢您的帮助 我有同样的问题 我修复了它 请按照以下步骤操作 您可以创
  • 如何检查日期字符串的有效性?

    在我的项目中 我需要检查日期字符串是否计算为正确的日期对象 我决定允许 yyyy MM dd 和日期格式 年 月 日 和 年 月 日 小时 分钟 我如何检查它们是否有效 我的代码为 1980 01 01 和一些奇怪的日期 如 3837 05
  • Java和手动执行finalize

    如果我打电话finalize 在我的程序代码中的一个对象上 JVM当垃圾收集器处理这个对象时仍然再次运行该方法吗 这是一个大概的例子 MyObject m new MyObject m finalize m null System gc 是
  • Java String ReplaceAll 方法给出非法重复错误?

    我有一个字符串 当我尝试运行时replaceAll方法 我收到这个奇怪的错误 String str something op str str replaceAll o n it works fine str str replaceAll n
  • CXF:通过 SOAP 发送对象时如何排除某些属性?

    我使用 Apache CXF 2 4 2 当我将数据库中的某个对象返回给用户时 我想排除一些属性 例如密码 我怎样才能做到这一点无需创建临时的班级 有这方面的注释吗 根据 tomasz nurkiewicz 评论我应该使用 XmlTrans
  • 为什么我不能将 Collection 转换为 Collection>

    问题的关键是 为什么这会导致编译时错误 List

随机推荐

  • 在windows上打开指定目录下的Cygwin命令

    我使用 phpstorm 和它的终端设施 在终端部分我输入F Projects cygwin64 bin mintty exe i Cygwin Terminal ico 所以它使用 Cygwin 作为终端 但它会在主文件夹中打开它 是否可
  • XML 不可能是整个程序

    当我包含以下 js 文件 其中包含 jquery 时 我在 Firebug 中收到错误 XML 不能是整个程序 JS文件包含参考 JS文件内容 id txtAddress1S blur function id txtAddress1S va
  • WPF 中延迟后重置变量值

    我有一些执行并获取执行返回值的代码 我将此值设置为窗口的依赖属性 因为有样式触发器绑定到它 当变量为 0 时 使用默认样式 1 时使用偏红色样式 2 时使用绿色样式 但一段时间后我必须以某种实际的方式重置这种风格 做到这一点最简单的方法是什
  • High Sierra 中的 NSCollectionView 内存泄漏?

    我通过 Instruments 注意到 NSCollectionView 中存在内存泄漏 当我追踪代码时 它显示了下面的特定行 collectionView makeItem withIdentifier identifier for in
  • Python 变量声明

    我想澄清一下 Python 中如何声明变量 我见过变量声明 https www learnpython org en Variables and Types as class writer path 有时 没有显式声明 而只是使用初始化 i
  • 如何通过 XPath 选择第一个元素?

    我有以下 HTML 结构 div class carousel ul class carousel view li li ul div
  • 如何解决Hibernate“未能延迟初始化角色集合”异常

    我有这个问题 org hibernate LazyInitializationException 未能延迟初始化角色集合 mvc3 model Topic comments 没有会话或会话被关闭 这是模型 Entity Table name
  • 如何转义包含空格的路径

    要将带有空格的路径传递给 NET 控制台应用程序 您应该转义它 可能不是转义而是用双引号引起来 myapp exe path C Program Files MyApp becomes new string path C Program F
  • 从 A[a,b] 到 A[c,d] 的不同非循环路径的计数?

    我正在编写一个推箱子求解器 用于娱乐和练习 它使用一个简单的算法 类似于 BFS 但略有不同 现在我想估计它的运行时间 O 和 omega 但需要知道如何计算网络中从一个顶点到另一个顶点的非循环路径的计数 实际上我想要一个表达式来计算 m
  • Eclipse:无法从 SDK 获取所需的 ADT 版本号 [重复]

    这个问题在这里已经有答案了 我尝试设置一个新的 eclipse 安装 包括 android sdk 和 adt 插件 所有部件的安装均已完成 没有错误 使用 eclipse 设置 sdk 路径后出现此错误 Failed to get the
  • Android 上的预定警报管理器不工作

    我正在尝试启动每天在特定时间重复的闹钟服务 我已经在堆栈溢出方面经历了很多线程 但没有运气 我遵循了一些教程 http karanbalkar com 2013 07 tutorial 41 using alarmmanager and b
  • 为什么这个版本的 strcmp 速度较慢?

    我一直在尝试提高性能的实验strcmp在某些条件下 然而 不幸的是 我什至无法实现普通的香草strcmp执行以及库实现 I saw a 类似的问题 https stackoverflow com q 20734934 774658 但答案表
  • 用户开始输入后如何在 EditText 中添加字符

    我有一个 editText 用户在其中输入电话号码 但是当他们单击第一个号码时 我希望在文本开头出现一个 我有这段代码 但 始终存在 我只希望它在用户输入数字时出现 我该如何解决这个问题 final EditText editText fi
  • JQuery TableSorter 逗号数字解析器不工作

    这是我的问题 我目前正在使用 JQuery Table Sorter 并且在网上找到了一个逗号数字解析器 我遇到的问题是它似乎不起作用 因此 该列的排序如下 4 666 141 666 293 341 666 346 461 676 这应该
  • xcodebuild 错误:“删除方案时出错:无法修改数据,因为该进程不允许保存。”

    我正在尝试使用测试 Swift 包xcodebuild 命令是 Applications Xcode 13 3 1 app Contents Developer usr bin xcodebuild test scheme BokenEng
  • Android 应用 XML 中的上标和下标

    我正在解析 XML 文件中的数据 该文件中包含从字符映射表中获取的下标和上标字符 就像这样
  • 如何在 Ionic 5 中获得 canGoBack 功能?

    我试图在 Ionic 应用程序中放置一个后退按钮 并在根目录中隐藏后退按钮 该根目录不是固定的 可以根据流程进行更改 我在这里找到了以下代码 constructor private router Router private ionRout
  • 执行 2 个位图的重叠检测

    我有一个自定义图片框控件 允许在主图像上单独拖动 2 个位图 从而允许用户选择 2 个位图的位置 对于第一个位图 Point src e Location PointF ratio new PointF float src X Client
  • Express.js:app.locals vs res.locals vs req.session

    我试图了解何时最好使用以下各项 这是我的初步理解 应用程序 locals 适合在应用程序级别存储全局变量 所有用户 会话都会看到这些变量的相同值 这些变量可用于所有视图 当地人资源 适合存储特定请求 响应周期的变量 这些变量仅适用于与响应关
  • equals方法在字符串和列表中的使用

    在oracle java文档中 list 中的 equals 表示如果两个列表包含相同的元素 则它们被定义为相等 但从对象类 equals 仅当它们的哈希码相等时才返回 true 这意味着列表中的 equals 覆盖对象类中的 equals