当前位置: 首页 > 面试题库 >

使用Google Guava过滤JavaBeans列表

申屠泉
2023-03-14
问题内容

在Java程序中,我有一个要基于特定属性过滤的bean列表。

例如,假设我有一个Person列表,一个JavaBean,其中Person具有许多属性,其中包括“名称”。

我也有一个名字列表。

现在,我想查找姓名在姓名列表中的所有人员。

使用Google Guava执行此过滤器的最佳方法是什么?

到目前为止,我已经考虑过将Guava与Apache beanutils结合使用,但这似乎并不优雅。

我还在这里找到了反射扩展库:http :
//code.google.com/p/guava-reflection/,但是我不确定如何使用它(几乎没有文档)。

有什么想法吗?

ps你能告诉我我真的很想念Python列表理解吗?


问题答案:

不用番石榴就可以老式的方式进行操作。(以Guava开发人员的身份发言。)

List<Person> filtered = Lists.newArrayList();
for(Person p : allPersons) {
   if(acceptedNames.contains(p.getName())) {
       filtered.add(p);
   }
}

您可以使用Guava做到这一点,但是Java不是Python,而尝试将其制作成Python只会使笨拙且难以理解的代码永存。Guava的功能实用程序应谨慎使用,并且只有在它们为代码行或性能提供具体且可衡量的好处时,才应使用。



 类似资料:
  • 问题内容: 我打算使用一个简单的数据库查询来创建Web应用程序的用户的无序列表,但是后来打算让人们通过在文本输入中键入要查找的人的名字来过滤此列表。 我希望使用jQuery将输入框中的字符串与列表项中的任何一个匹配,然后隐藏其他项,也许是通过对包含匹配字符串的那些项动态地应用一个新类,并隐藏所有其他不包含该类。 有人知道这样做的好方法吗? 问题答案: 假设你有一个的,下面会做的一种方式。 另外,对

  • 问题内容: 我有一组对象,它们只是项目。我还有一个下拉菜单,我希望使用该下拉菜单允许用户按价格或评分进行过滤,但是在页面加载时不应进行过滤。 如何根据当前选择选项映射项目数据以进行过滤? 我有一个笨拙的入门:LINK 问题答案: 首先,您选择的值不明确。它们包含可以对条目进行过滤和排序的值-将它们分开是两个功能,因此将它们分开。 接下来,您需要定义一个自定义过滤器,该过滤器将根据所选的评级过滤数据

  • 问题内容: 我有一个csv文件,当我使用过滤列并使用多个索引时,该文件输入不正确。 我希望df1和df2除了丢失的虚拟列外应该相同,但这些列的标签错误。日期也被解析为日期。 使用列号而不是名称给我同样的问题。我可以通过在read_csv步骤之后删除虚拟列来解决此问题,但是我试图了解出了什么问题。我正在使用熊猫0.10.1。 编辑:修复错误的标头用法。 问题答案: @chip的答案完全错过了两个关键

  • 问题内容: 我想使用与列长有关的条件来过滤,这个问题可能很容易,但是我在SO中没有找到任何相关问题。 更具体的,我有一个只有一个,其中,我想过滤使用长度filterer,我拍下面的一个片段。 我阅读了Column的Documentation,但是没有找到任何有用的属性。感谢您的帮助! 问题答案: 在Spark> = 1.5中,您可以使用功能: 在Spark <1.5中,UDF应该可以解决问题: 如

  • 问题内容: 我是angularjs和javascript的新手,所以请保持友好,我有两个下拉项(Ionic Select),它们都保存来自服务的数据。问题是我需要过滤它们才能像这样一起工作:如果我在第一个下拉列表中选择一个公司,则只有该公司内部的代表才应显示在另一个下拉列表中。 我按照Angularjs文档中的说明尝试使用,但我不知道这样做是不正确的方法。 HTML: Javascript: 问题

  • 问题内容: 什么是JavaBean,为什么需要它?既然可以创建具有类和接口结构的所有应用程序?为什么我需要豆子?你能给我一些例子,在这些例子中,bean是必不可少的,而不是类和接口? 请在以下上下文中说明Bean的必要性: Wep apps Standalone apps 问题答案: 它们通常仅代表真实世界的数据。这是一个Javabean的简单示例: 实施并不是强制性的,但是如果你希望能够在Jav