Java 基本算法
我试图编写一个流函数,将数组中的所有正数更改为“大” 示例:Java 基本算法,java,filter,java-8,java-stream,Java,Filter,Java 8,Java Stream,我试图编写一个流函数,将数组中的所有正数更改为“大” 示例:makeItBig([-1,3,5,-5])返回相同的数组,更改为[-1,“big”,“big”,“-5] 到目前为止,我的结论是: public static Object[] makeItBig(Object[] arr){ List <Object> array = arr.stream().filter(nb->nb>0).forEach(nb -> “big”); return a
makeItBig([-1,3,5,-5])
返回相同的数组,更改为[-1,“big”,“big”,“-5]
到目前为止,我的结论是:
public static Object[] makeItBig(Object[] arr){
List <Object> array = arr.stream().filter(nb->nb>0).forEach(nb -> “big”);
return array;
}
publicstaticobject[]makeItBig(Object[]arr){
List array=arr.stream().filter(nb->nb>0).forEach(nb->“big”);
返回数组;
}
我被认为是在使用map()I/o或forEach()之外……这里有许多错误:
- 不能对数组调用
,需要使用.stream()
- 从流中删除值,因此结果中不会出现负数
- 不返回结果;这就像(tx:as)循环的
,您需要返回修改后的值
- 您不能只将对象与
进行比较:您需要先将其转换为int
- 流不返回列表;你需要取钱或打电话
导入java.util.array;
导入java.util.List;
班级变大了{
公共静态void main(字符串[]args){
Object[]bigged=makeItBig(新对象[]{-1,3,5,-5});
for(对象o:bigged){
系统输出打印ln(o);
}
}
公共静态对象[]makeItBig(对象[]arr){
返回数组
.stream(arr)
.map(x->((int)x>0)?“大”:x)
.toArray();
}
}
Tks等待您的回复!谢谢你的回复比利@卡米洛:不过,这不是很安全。至少使用int[]
而不是强制转换为int
s.@user不安全,不,但我不想更改方法的签名。当然,这也可以作为一个最小的例子,其中使用不同的类型,而不是int
s和String
s。是的,我没有责怪你,我只是建议OP在需要更具体的类型时不要使用Object[]s。