【问题标题】:How do I find an element in a list given a property of that element in java?给定java中该元素的属性,如何在列表中找到该元素?
【发布时间】:2016-04-27 15:01:06
【问题描述】:

我有一个包含大学名称(字符串)的列表。我有另一个大学列表,其中每所大学都有一个名为“名称”的字符串变量。我想将名称与大学匹配到每个 College 对象。任何帮助表示赞赏,谢谢。

【问题讨论】:

  • 我想你忘了包括到目前为止你已经尝试过的内容。

标签: java list


【解决方案1】:

使用 Java 8 中引入的Stream API,您可以通过filter(Predicate p)College 列表生成另一个列表中提到的College 的列表:

collegeList.stream()
           .filter(college -> collegeNamesList.contains(college.name))
           .collect(Collectors.toList());

【讨论】:

  • @Aaron,你能解释一下你的答案吗?
  • @Johnspecter 我不确定我是否真的可以:解释流 API 对于 SO 答案来说太宽泛了,我认为熟悉它的人会通过阅读我的介绍性句子来理解我的解决方案。我提到了 Stream API 并链接到一个 Oracle 教程;你认为这就足够了吗?你还有什么建议吗?
  • @Aaron 也许你可以将collegeNamesList 放入一个HashSet 以在contains 上有更好的表现
  • @NicolasFilotto 这是一个有趣的建议,但根据 CollegeNamesList 的大小,创建 HashSet 的开销可能不值得降低访问成本。为简洁起见,我不会编辑我的答案,但我希望任何打算使用它的人都会阅读您的评论。
  • @Aron 没错,实际上这取决于collegeNamesList 和collegeList 的大小,如果collegeNamesList 很短而collegeList 很大,它仍然很有趣
猜你喜欢
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 2020-04-12
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多