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

Java,在对象列表中搜索?

邹锦
2023-03-14
问题内容

我有点迷茫,无法做到最快。我有一大堆具有基本变量属性的对象(带有getters /
setters方法),我需要在此列表中进行搜索以找到列表中与给定参数匹配的对象

我已经找到了如何进行常规列表搜索的方法,但是我需要进行搜索,例如搜索列表中每个对象的调用getName()的结果的值,并获取结果与我的输入匹配的对象。

如下所示,第三个参数是方法调用的结果,第二个是我要查找的结果。

   int index = Collections.binarySearch(myList, "value", getName());

任何建议表示赞赏


问题答案:

如果一次性操作需要找到其getName()是特定值的对象,那么可能就没有什么魔术了:遍历列表,在每个对象上调用getName(),对于那些匹配项,将它们添加到您的结果列表中。

如果getName()是一项昂贵的操作,并且如果给定对象肯定不会返回匹配值,则还有其他先验方法,那么很显然,您可以在循环过程中构建此“过滤器”。

如果您经常需要获取给定getName()的对象,则保留[getName()-> object-> match
list的结果]的索引(例如,在HashMap中)。您需要确定如何以及是否需要使此“索引”与实际列表保持同步。

另请参见另一个命题,以使用binarySearch()但保持列表不变。这样,插入比使用映射和未排序列表要贵,但是如果插入与查找相比不常见,那么它的优点是只需要维护一个结构。



 类似资料:
  • 问题内容: 假设我正在创建一个简单的类以类似于C样式的结构工作,只保存数据元素。我试图弄清楚如何在对象列表中搜索属性等于某个值的对象。下面是一个简单的示例,以说明我要执行的操作。 例如: 我将如何搜索myList列表以确定它是否包含n == 5的元素? 我一直在谷歌搜索和搜索Python文档,我想我可以通过列表理解来做到这一点,但是我不确定。我可能还要补充一点,我必须使用Python 2.4.3,

  • 问题内容: 我有一个对象列表,列表很大。对象是 现在,我必须在列表中搜索对象的特定值。假设 我必须返回那些对象(我的搜索并不总是基于value3) 清单是 有效的方法是什么? 谢谢。 问题答案: 您可以尝试使用Apache Commons Collections。 有一个CollectionUtils类,允许您通过自定义谓词选择或过滤项目。 您的代码将如下所示: 更新: 在 java8中 ,使用

  • 在我正在设计的应用程序中,我有一个名为的自定义对象列表。这里可以看到Shop类。 在我的应用程序中,我创建了一个对象,并用1500个Shop对象填充它。 我已经覆盖了shop.java中的equals和hashcode方法,并且可以使用list#contains方法来验证列表中包含一个具有匹配weblink的对象,但无法获取该对象的索引。 equals和hashcode方法: 要使用它,我要用we

  • 我有一个对象列表,列表很大。对象是 现在我必须在列表中搜索一个对象的特定值。假设我必须返回这些对象(我的搜索不总是基于value3) 该列表为

  • 我的任务是创建一个数组列表,其中包含联系人信息对象。然后,我必须询问要从哪个字段搜索,以及要搜索的信息。我很难搞清楚搜索部分。我试图进入每个对象,指定要搜索并找到匹配的变量。这是我必须创建的示例输出。我的老师想把这个代码结构用于主和副教材。 这是我很难弄清楚的领域。我想学习,但是当你陷入困境,书中和网上的所有例子都没有这种场景时,就会变得令人沮丧。谢谢你的任何投入。 搜索方法:接收ArrayLis

  • 我有“MainClass”类的对象列表,它包含“Question”类的对象列表,它包含Option类的对象列表。如何按“Id”对“MainClass”类列表进行排序,以及按“Id”对“Option”类列表进行排序? 假设,