gpt4 book ai didi

java - 如何缓存列表中对象属性的查找?

转载 作者:行者123 更新时间:2023-12-02 12:20:17 24 4
gpt4 key购买 nike

我有一个包含条目的列表,如下所示:

public class Entry {
private String origin;
private String destination;
private Date date;
}

我希望能够独立搜索每个属性,并相应地显示所属条目。

示例:

#origin, destination, date
berlin, newyork, 2017-10-10
berlin, london, 2017-10-10
sydney, barcelona, 2017-10-10
  • 如果有人搜索“origin=berlin”,我想显示:destinations=newyork, london;日期=2017-10-10

  • 搜索 destination=london 应得到 origin=berlin;日期=2017-10-10

  • 同样,搜索 date=2017-10-10 应显示 origin=berlin, sydney;目的地=纽约、伦敦、巴塞罗那

问题:如何在内存中实现此功能(我无法使用 mysql 数据库)?

当然,每次出现搜索请求时,我都可以迭代所有对象,例如:

List destinations;
List dates;

for (entry : entries) {
if (entry.origin.equals("berlin")) {
destinations.add(entry.destination);
dates.add(entry.date);
}
}

但我更喜欢缓存的解决方案,这样我就不必在每次搜索时重新创建它们(也可以节省时间)。

旁注:Entry 列表是一个SELECT DISTINCT origin, dest, date from table 的 View 。因为我不想在每个搜索请求上查询数据库。

最佳答案

Guava 的 Multiset 或 Multimap 实现可能会派上用场:

https://github.com/google/guava/wiki/NewCollectionTypesExplained

更好的是,apache JXpath:

http://commons.apache.org/proper/commons-jxpath/

关于java - 如何缓存列表中对象属性的查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45837660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com