【问题标题】:Subset List of Objects based on matching values基于匹配值的对象子集列表
【发布时间】:2011-12-06 10:24:03
【问题描述】:

我的情况如下所述。

我确实有名为Document 的Java Bean,它有各种属性。一个属性是

String documentStatus

我确实有List<Document> documentList。然后我确实有List<String> statusList。

现在,我想要列出所有 documentStatus 与给定 statusList 匹配的文档。

一种解决方案是迭代 documentList 并使用 statusList.contains(document.getStatus()) 匹配值。

其次,Predicates in Java

除此之外,任何人都可以有任何想法吗?

任何帮助将不胜感激。

【问题讨论】:

  • 您已经有两种可能性,它们都提供了完美的解决方案。您为什么要寻找其他替代方案?了解这一点,将有助于提供您正在寻找的答案。
  • 正如您在链接中显示的那样,我将使用 Google Guava 库的谓词。
  • 确实,最好、最清晰的方法是使用 Guava 库并执行 Lists.filter(l, predicate);
  • 考虑将您的statusList 复制到一个集合中。集合可以提供 O(1) 的 contains 实现,这在循环中使用 contains 时可能很重要。

标签: java list sorting


【解决方案1】:

你可以在列表中使用 contains 方法。类似的东西

for(Document doc:documentList){
if(statusList.contains(doc.getDocumentStatus()))
newDocList.add(doc)
}

【讨论】:

  • 嗨..谢谢你..我在帖子中提到我想获得任何其他最佳解决方案。如果可行,否则我只使用它。
  • 现在.. 我接受你的回答是正确的。因为我已经在使用这个了。
猜你喜欢
  • 1970-01-01
  • 2022-11-22
  • 2022-10-01
  • 2021-04-25
  • 1970-01-01
  • 2019-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多