为什么 Java 中的 contains() 方法不能按预期工作?

2024-03-08

我正在编写一个创建 ArrayList 的方法S_Comp包含数组中包含的所有元素allNodes,但不包含在 ArrayList 中solution(其元素全部包含在allNodes)。当我打印时solution and allNodes,我可以很容易地看出S_Comp应包含 7 个元素。然而,所有元素都来自allNodes被添加到S_Comp,还有包含在nodesS。这里可能有什么问题?

您可以在下面找到我的该方法的代码。在调用该方法之前,S_Comp仅被初始化为new ArrayList<MyNodesData>,所以它的大小为0。

public void generateSComp(DataFile testDataFile, ArrayList<Route> solution, ArrayList<MyNodesData> S_Comp)
    {
        System.out.println("solution: " + solution.toString());
        ArrayList<MyNodesData> nodesS = getNodesS(solution);
        System.out.println("NodesS: " + nodesS.toString());
        System.out.println("Size nodesS: " + nodesS.size());
        MyNodesData[] allNodes = testDataFile.getNodes();
        System.out.println("allNodes: " + Arrays.toString(allNodes));
        for(MyNodesData node : allNodes)
        {
            if(!nodesS.contains(node))
            {
                System.out.println(node.toShortString() + " is not in nodesS");
                S_Comp.add(node);
            }
        }

ArrayList javadoc的contains方法请参考这里:https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#contains-java.lang.Object- https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#contains-java.lang.Object-

It says

公共布尔包含(对象o)

如果此列表包含指定元素,则返回 true。更多的 形式上,返回 true 当且仅当 list 至少包含一个元素 e 使得 (o==null ? e==null : o.等于(e))。

所以只有当你重写对象类的 equals 方法如你所愿在 MyNodesData 类中。此外,您可能已经知道 equals() 和 hashcode() 方法之间的约定,它是强烈建议重写 hashcode() 和 equals().

了解更多信息 :为什么我需要重写 Java 中的 equals 和 hashCode 方法? https://stackoverflow.com/questions/2265503/why-do-i-need-to-override-the-equals-and-hashcode-methods-in-java

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

为什么 Java 中的 contains() 方法不能按预期工作? 的相关文章

  • Java HashMap 嵌套泛型与通配符

    我正在尝试创建包含自定义类的不同子类的哈希集的哈希映射值的哈希映射 如下所示 HashMap
  • 想要从java中的char数组创建字符流

    我想从 char 数组构造一个流以使用 java 8 功能 例如过滤器和映射 char list a c e Stream
  • javax.persistence.TransactionRequiredException:没有可用于当前线程的实际事务的 EntityManager

    我使用 Hibernate 创建了我的第一个 Spring MVC 项目 我的 DAO 层使用 JPA EntityManager 与数据库交互 GenericDao java Repository public abstract clas
  • 为什么Java中的文件名与公共类名相同? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在Java中 文件名应该与文件名相同public class包含在该文件中 为什么这是一个限制 它有什么目的 Java 有一个有趣的方法 如果给
  • 在 PHP 中使用数组来比较用户名/密码

    我有以下 php 脚本 其中有一个用户名和密码 Username user1 Password pass1 if isset POST submitform Clean up the input values foreach POST as
  • Java时间转正常格式

    我有 Java 时间1380822000000 我想转换为我可以阅读的内容 import java util Date object Ws1 val a new Date 1380822000000 toString 导致异常 warnin
  • 为本地@ExceptionHandler编写JUnit测试

    我有以下控制器 class Controller ResponseStatus HttpStatus OK RequestMapping value verifyCert method RequestMethod GET public vo
  • 欧拉项目 45

    我还不是一名熟练的程序员 但我认为这是一个有趣的问题 我想我应该尝试一下 三角形 五边形 六边形 数字由以下生成 公式 三角形 T n n n 1 2 1 3 6 10 15 五边形 P n n 3n 1 2 1 5 12 22 35 六角
  • Hazelcast:连接到远程集群

    我们有一组 Hazelcast 节点 全部运行在一个远程系统 具有许多节点的单个物理系统 上 我们希望从外部客户端连接到该集群 一个 Java 应用程序 它使用如下代码连接到 Hazelcast ClientConfig clientCon
  • JPA 的 Hibernate 查询提示

    我一直在尝试为所有可以通过设置的提示找到一个明确的资源Query setHint String Object JPA 中的方法调用 但我一无所获 有人知道一个好的参考吗 See 3 4 1 7 查询提示 http docs jboss or
  • 如何将测试类打包到jar中而不运行它们?

    我正在努力将我的测试类包含到 jar 包中 但不运行它们 经过一番谷歌搜索后 我尝试过mvn package DskipTests 但我的测试类根本没有添加到 jar 中 有任何想法吗 如果您遵循 Maven 约定 那么您的测试类位于src
  • Java8 项目上的 SonarQube 给出 jacoco-Exception

    我刚刚下载了最新版本 SonarQube 4 3 然后尝试使用以下命令构建 java 8 项目 mvn clean install mvn sonar sonar 这给了我下面的例外 谷歌搜索 我的印象是这是一个早期的问题 应该已经解决 h
  • Java 常量枚举[重复]

    这个问题在这里已经有答案了 可能的重复 理解 Java 中的枚举 https stackoverflow com questions 1419835 understanding enums in java 为什么我们应该使用枚举而不是 Ja
  • 应用程序中空指针异常[重复]

    这个问题在这里已经有答案了 我正在尝试在我的应用程序中实施应用程序内计费 我写了这段代码 public class Settings extends PreferenceFragment ServiceConnection mService
  • 线程上下文类加载器和普通类加载器的区别

    线程的上下文类加载器和普通类加载器有什么区别 也就是说 如果Thread currentThread getContextClassLoader and getClass getClassLoader 返回不同的类加载器对象 将使用哪一个
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 使用 Commons 或 Guava 将文本文件转换为 Java Set

    我想将文件中的每一行加载到 HashSet 集合中 有没有一种简单的方法可以做到这一点 怎么样 Sets newHashSet Files readLines file charSet 使用番石榴 参考 文件 readLines http
  • 接口中“不能降低继承方法的可见性”的含义

    我有两个文件 public interface PrintService void print PrintDetails details class PrintDetails private String printTemplate pub
  • 检查 Java 字符串实例是否可能包含垃圾邮件数据的最简单方法

    我有一个迭代 String 实例的过程 每次迭代对 String 实例执行很少的操作 最后 String 实例被持久化 现在 我想为每次迭代添加一个检查 String 实例是否可能是垃圾邮件的检查 我只需验证 String 实例不是 成人材
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐

  • 如何使用 msiexec 将 MSI 安装到特定目录中?

    我想使用 msiexec 将 MSI 文件安装到特定目录中 我在用 msiexec i msi path INSTALLDIR C myfolder qb 使用 INSTALLDIR 无法正常工作 因为 MSI 安装到默认路径而不是指定路径
  • 使用 Map 实现 Trie

    我今天正在解决一个问题 但我被困住了 我知道特里树是如何工作的 但问题是我知道如何用静态数组和类来实现它 今天在网上冲浪时我读到有一种方法可以使用 stl map 来实现 attempts 我今天尝试了 但我仍然不知道如何在 int 上插入
  • 抽象和封装之间的区别?

    封装和抽象之间的确切区别是什么 这里的大多数答案都集中在 OOP 上 但封装开始得更早 每个函数都是一个封装 https en wikipedia org wiki Encapsulation 28computer programming
  • 如何在 Linux 上从网络摄像头捕获静态图像

    我正在尝试为 Linux 编写一个 C Qt 程序 其中我从网络摄像头拍摄静态图像照片 对照片进行一些转换 裁剪 调整大小等 然后将其保存到 jpeg 文件 但我遇到了一些问题 主要问题是标准 UVC USB 视频设备类 Linux 驱动程
  • SVG + Matrix3d 在不同浏览器中呈现不同的效果

    我正在使用 3d 矩阵和 svg 转换对象 但相同的矩阵在不同的浏览器中呈现不同的效果 这是示例 http jsfiddle net dexus kcwrjgew http jsfiddle net dexus kcwrjgew
  • Mongoose默认排序顺序

    有没有办法在 Mongoose 中指定模式 模型级别的排序顺序 我有模型Posts 我总是获取按以下顺序排序的帖子 createdAt 场地 因此 在每个查询中我必须写 sort createdAt 我可以将此订单设为该型号的默认订单吗 在
  • 通过 VBA 迭代切片器并每次选择一个项目

    我的电子表格中有几个切片器 我希望能够通过 VBA 循环其中一个 并一一选择每个选项 下面的宏对我疲惫的眼睛来说似乎很好 但当我运行它时它显然不起作用 当我在下面的 BREAKPOINT 标记处添加断点时 第一个项目被选中 但随后宏转到第二
  • iOS 11:导航控制器内带有滚动视图的弹出视图控制器和不透明的导航栏会导致过渡期间出现奇怪的内容动画

    带有不透明导航栏的导航控制器内带有scrollView的弹出视图控制器会在转换过程中导致奇怪的内容动画 在转换过程中 内容将低于其原始位置 交互式弹出将使这一点变得非常明显 启用安全区域并不能解决此问题 我相信这是 iOS 11 中的一个错
  • Python:While、if、else 计数

    我对 while if 语句有一些疑问 我有一个值列表 通常这些值是字符串 但有时它可以返回 None 这是我的两个尝试 x One Two Three None None New count 0 for y in x while isin
  • R函数返回包的许可证?

    我想返回 R 包的描述文件中声明的包许可证 理想情况下我宁愿拥有 CRAN 自动添加到它识别的所有通用许可证中的 URL 我意识到我可以获得 R 本身分发的许可证 license 令人惊讶的是 这不适用于包裹 例如许可证 包名 此数据也不是
  • jEdit 可以用作 IDE 吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 两个浏览器选项卡之间共享变量范围? [复制]

    这个问题在这里已经有答案了 我有一个带有 HTML 表单的 Web 应用程序 其中包含一个选择 选项条目 它在包含 200 个项目的演示中运行良好 即使找到您想要的项目很笨拙 但实际上有超过 30000 个项目 这是零件清单 我的第一个想法
  • MySQL:检查某个值是否包含在范围区间内

    我想知道是否可以检查字符串值是否包含在列中 前提是该列包含开始值和结束值 例如 如果表的 NR 列包含以下行 400 50045 76 23 2512 14 19 21 我想找到其中包含值 421 的行 所以答案应该是第一行 这在mysql
  • 位置固定和-webkit-overflow-scrolling:触摸;

    我正在使用 css 技巧让网站感觉像 Cordova 中的应用程序 webkit overflow scrolling touch 然而 这打破了 消失 反弹 我的位置 固定元素 有什么想法吗 仅供参考 Safari 在 ios 8 上运行
  • PHP 全局命名空间别名

    这是场景 我正在将命名空间实现到我的项目中 我有自己的自定义桥接库 它调用 Zend 等其他库来完成繁重的工作 我在自定义桥库中使用完全限定的命名空间没有问题 但希望在控制器 模型和视图中保持代码尽可能简洁 这是我想使用的一些别名的示例 u
  • 使用flask-wtf queryselectfield进行更具体的SQL查询

    我想使用 Flask 和 WTF 创建一个登录表单 应用程序应从数据库表中读取所有用户的昵称并将其显示在 QuerySelectField 中 它确实有效 但我认为我可以以 更好的方式 做到这一点 我有一个这样的数据库表 id nickna
  • 带括号的成员函数地址错误

    我发现了一些有趣的事情 错误消息说明了一切 获取非静态成员函数的地址时不允许使用括号的原因是什么 我在 gcc 4 3 4 上编译它 include
  • Onclick 事件跟踪 Google Analytics Wordpress Visual Composer 插件

    我想添加以下代码以进行 GA 事件跟踪 onclick ga send event eventCategory Contact eventAction ContactRequest 关于此号召性用语 div class vc btn3 co
  • 从 WCF 服务返回 401

    如何从 WCF 服务返回 HTTP 401 如果您正在编程 REST 服务 可以通过以下方式完成 private IWebOperationContext context new WebOperationContextWrapper Web
  • 为什么 Java 中的 contains() 方法不能按预期工作?

    我正在编写一个创建 ArrayList 的方法S Comp包含数组中包含的所有元素allNodes 但不包含在 ArrayList 中solution 其元素全部包含在allNodes 当我打印时solution and allNodes