我有一个double[]
,我想在一行中过滤掉负值(创建一个没有新数组)而不添加for
循环。使用Java 8 Lambda表达式是否可能?
在python中,将使用生成器:
[i for i in x if i > 0]
是否可以在Java 8中做类似的简洁操作?
是的,您可以通过DoubleStream
在数组中创建一个,滤除负片,然后将流转换回数组来实现此目的。这是一个例子:
double[] d = {8, 7, -6, 5, -4};
d = Arrays.stream(d).filter(x -> x > 0).toArray();
//d => [8, 7, 5]
如果要过滤不是的引用数组,则Object[]
需要使用采用的toArray
方法IntFunction
来获取原始类型的数组作为结果:
String[] a = { "s", "", "1", "", "" };
a = Arrays.stream(a).filter(s -> !s.isEmpty()).toArray(String[]::new);
我有一个对象列表,比如。我想根据使用Java 8的一些参数过滤这个列表。但如果参数为,则抛出。如何过滤掉空值? 当前代码如下 如果返回,则抛出。
有两个具有相同结构的地图,即map1和map2,其结构为
如何使用java8流和过滤器过滤嵌套循环? 假设我有一个汽车列表(
本文向大家介绍对python过滤器和lambda函数的用法详解,包括了对python过滤器和lambda函数的用法详解的使用技巧和注意事项,需要的朋友参考一下 1. 过滤器 Python 具有通过列表解析 将列表映射到其它列表的强大能力。这种能力同过滤机制结合使用,使列表中的有些元素被映射的同时跳过另外一些元素。 过滤列表语法: [ mapping-expression for element i
我想用Lambda对列表排序: 但我得到了这个编译错误:
我正在用Java8为一个文件编写一个解析器。使用读取该文件,并返回一个顺序的。 每一行都映射到一个数据对象,如下所示: 现在我们可以将流中的每一行映射到相应的结果: 但是,流现在包含要删除的值: 如我在中所知,如果需要结果,我如何组合映射/筛选操作?