比较多列

时间:2013-02-09 23:53:50

标签: java oracle jdbc arraylist

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

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

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

2 个答案:

答案 0 :(得分:0)

创建描述该行的对象。使用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();
   }

http://code.google.com/p/guava-libraries/wiki/CommonObjectUtilitiesExplained#equals

答案 1 :(得分:0)

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

List.contains

Collections.frequency

Collections.sort