gpt4 book ai didi

用于列表清理的Java one liner

转载 作者:太空狗 更新时间:2023-10-29 22:20:25 27 4
gpt4 key购买 nike

java 中是否有一个结构可以做这样的事情(这里用 python 实现):

[] = [item for item in oldList if item.getInt() > 5]

今天我使用的是:

ItemType newList = new ArrayList();
for( ItemType item : oldList ) {
if( item.getInt > 5) {
newList.add(item);
}
}

对我来说,第一种方式看起来更聪明一些。

最佳答案

Java 7 mightmight not实现闭包并因此支持这样的功能,但目前它不支持,因此在 Java VM 上您可以选择在 Groovy 中执行此操作, ScalaClojure (也可能是其他人),但在 Java 中,您只能通过使用像 Guava 的 Collections2.filter() 这样的助手来接近它。 .

JDK 7 示例代码:

findItemsLargerThan(List<Integer> l, int what){
return filter(boolean(Integer x) { x > what }, l);
}
findItemsLargerThan(Arrays.asList(1,2,5,6,9), 5)

Groovy 示例代码:

Arrays.asList(1,2,5,6,9).findAll{ it > 5}

Guava 示例代码:

Collections2.filter(Arrays.asList(1, 2, 5, 6, 9),
new Predicate<Integer>(){
@Override
public boolean apply(final Integer input){
return input.intValue() > 5;
}
}
);

Scala 示例代码(感谢 Bolo):

Array(1, 2, 5, 6, 9) filter (x => x > 5)

关于用于列表清理的Java one liner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760120/

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