gpt4 book ai didi

java - 基于 boolean 属性将列表转换为集合的最简单方法?

转载 作者:行者123 更新时间:2023-11-30 06:29:37 25 4
gpt4 key购买 nike

我有一个对象列表,每个对象都有一个 boolean 值“selected”属性。如果“selected”属性为真,我希望将它们放在一个集合中。除了通过对象将每个对象添加到集合中的 for 循环之外,还有其他方法可以实现这一点吗?

最佳答案

对于这么简单的事情,只需编写一个循环即可完成。

如果这是您要反复实现的模式:

(未经测试,所以可能会有一两个错字)

public interface Selector<T> {
public boolean select(T t); }

public <T> Set<T> grep(Collection<T> coll, Selector<T> sel) {
Set<T> result = new Set<T>;
for (T item : coll)
if (sel.select(T))
result.add(T);
return result;
}

和调用

List<SomeClasss> input = ...;
Set<SomeClass> output = grep(
input,
new Selector<SomeClass> {
public boolean select(SomeClass item) {
return some-boolean-function-of-item; // decide which items to keep here
}
}
);

Selector 的实现知道如何检查对象并决定是否应该保留它们。

关于java - 基于 boolean 属性将列表转换为集合的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11324994/

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