Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较多个列_Java_Oracle_Jdbc_Arraylist - Fatal编程技术网

Java 比较多个列

Java 比较多个列,java,oracle,jdbc,arraylist,Java,Oracle,Jdbc,Arraylist,有没有一种有效的方法来比较列表中的元素?关于此事的一些背景: 我正在解析数据,然后将其存储在列表中。然后,我将查询一个Oracle数据库,查找与某些元素(ID名称描述)匹配的列表。我一直在创建一个数据结构,然后将其存储到列表中。问题是如何比较内容。我需要解释4种情况 新数据是全新的(添加行) 新数据主要与现有数据匹配(更新前一行) 数据库中存在的数据不是新数据,而是与某些数据相匹配的数据。(状态需要更改以显示问题已取消) 数据完全匹配(如果更改了更新时间,则不更改) 创建一个描述行的对象。根据您

有没有一种有效的方法来比较列表中的元素?关于此事的一些背景:

我正在解析数据,然后将其存储在列表中。然后,我将查询一个Oracle数据库,查找与某些元素(ID名称描述)匹配的列表。我一直在创建一个数据结构,然后将其存储到列表中。问题是如何比较内容。我需要解释4种情况

  • 新数据是全新的(添加行)
  • 新数据主要与现有数据匹配(更新前一行)
  • 数据库中存在的数据不是新数据,而是与某些数据相匹配的数据。(状态需要更改以显示问题已取消)
  • 数据完全匹配(如果更改了更新时间,则不更改)

  • 创建一个描述行的对象。根据您的功能需求使用
    ComparisonChain

    public int compareTo(Foo that) {
         return ComparisonChain.start()
             .compare(this.aString, that.aString)
             .compare(this.anInt, that.anInt)
             .compare(this.anEnum, that.anEnum, Ordering.natural().nullsLast())
             .result();
       }
    

    如果我理解正确,这些方法可能会对您有所帮助:


    你能举几个例子说明你想做什么吗?你在数据库中查找的正是什么?您应该修改什么,内存中的列表还是更新数据库?你写了什么东西了吗,你被困在哪里了?我写了一堆代码,但发现自己被困在了比较的同一部分。我在考虑番石榴,但觉得它不能做我想要的。假设一行看起来像下面的(假设前两列是我关心的链接数据的ID)[a,b,11122233444]第2行看起来像[a,b,11122244555]在这种情况下,我想添加一个单独的行。假设在我收到的相同消息中:[a,b,666777888999],然后我想将其添加为新行,然后更新第1行,使其状态为“已取消”。很抱歉,没有跟踪。但是很明显,你需要自己的实现。我觉得这太原始了。还有一点需要注意的是,这些名单可能没有相同数量的共谋者。当我查询数据库中的现有数据时。我还存储ROWID。新数据的情况下不会有ROWID,因为它们还不在数据库中。在这种情况下,List.contains将始终返回false。