gpt4 book ai didi

java - 根据对象属性类型从列表中提取元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:50:16 25 4
gpt4 key购买 nike

通常,我有一个对象列表。每个对象都有属性。我想提取列表的一个子集,其中特定属性具有预定义值。

例子:

我有一个用户对象列表。一个用户有一个家乡。我想从我的列表中提取所有以“斯普林菲尔德”为家乡的用户。

我通常是这样完成的:

List users = getTheUsers();

List returnList = new ArrayList();

for (User user: users) {

   if ("springfield".equalsIgnoreCase(user.getHomeTown()) 

returnList.add(user);

}

我对这个解决方案不是特别满意。是的,它有效,但它似乎很慢。必然存在非线性解。

建议?

最佳答案

嗯,这个操作在本质上是线性的,除非你做一些极端的事情,比如根据你希望以这种方式检查的属性对集合进行索引。除此之外,您只需查看集合中的每个对象。

但是您可以做一些事情来提高可读性。例如,Groovy 提供了一个 each() method用于 Collection 。它会让你做这样的事情......

def returnList = new ArrayList();
users.each() {
if ("springfield".equalsIgnoreCase(it.getHomeTown())
returnList.add(user);
};

关于java - 根据对象属性类型从列表中提取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2114192/

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