gpt4 book ai didi

java - 如何通过属性查询内存对象?

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

我收到了 300 个 json 对象的列表,这些对象将在内存中缓存一天。在应用程序执行期间,我想通过对象的属性查询对象。

示例:

@XmlRootElement(name = "persons")
@XmlAccessorType(XmlAccessType.FIELD)
class PersonsDTO {
private List<PersonDTO> persons;

public static class PersonDTO {
private String name;
private int age;
//lots of more attributes
private Address address;
}
}

在这里,我想运行类似于数据库的查询,例如:

findByname("john doe");
findByAgeBetween(10, 18);

问题:如何最好地为这些“查询”查找准备数据?为每个查询函数创建一个 HashMap ,然后我就可以返回预先计算的结果?

或者是否有任何我可以使用的“类似数据库”的内存系统,并且可以像真实数据库一样进行查询?

最佳答案

除非您有特定的性能要求,否则我只会暴力破解它。扫描 300 个条目的时间应少于 0.1 毫秒。

这将允许您使用内置的流 API。

private List<PersonDTO> persons;

public List<PersonDTO> findBy(Predicate<PersionDTO> test) {
return persons.stream().filter(test).collect(Collectors.toList());
}


// findByName
List<PersonDTO> david = findBy(p -> p.getName().startsWith("David "));

// find by age
List<PersonDTO> youngAdult= findBy(p -> p.getAge() >= 18 && p.getAge() <= 30);

关于java - 如何通过属性查询内存对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343263/

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