gpt4 book ai didi

java - 向 int[] 的所有元素添加常量值的最短方法是什么?矩阵加法怎么样?

转载 作者:行者123 更新时间:2023-12-01 15:21:19 26 4
gpt4 key购买 nike

我有一个整数数组。我需要给它的每个元素加 1。将给定常量添加到每个元素(即无需显式循环)的最短、最通用的方法是什么?我在网上查看并不断获得有关将元素添加到数组(即串联)的页面。

难道没有比循环每个元素并添加常量更优雅的事情吗?有某种标准库方法吗?

就这一点而言,如何在没有显式循环的情况下将两个数组加在一起(即矩阵加法)?

最佳答案

以下是如何使用 Functional Java 编写上面的两种情况.

<小时/>

<强>1。每个元素加 1:

它是一个函数式编程库,因此它不提供变异操作。但您可以轻松地自己添加它们。

public static <A> void transform(Array<A> xs, F<A, A> f) {
for(int i = 0; i < xs.length(); i++) {
xs.set(i, f.f(xs.get(i)));
}
}

用途:

transform(yourArray, Integers.add.f(1));
<小时/>

<强>2。两个矩阵相加:

xssyss是两个矩阵,都是类型 Array<Array<Integer>> 。然后你可以添加它们:

 xss.zip(yss).map(new F<P2<Array<Integer>, Array<Integer>>, Array<Integer>>() {
public Array<Integer> f(P2<Array<Integer>, Array<Integer>> p) {
Array<Integer> xs = p._1();
Array<Integer> ys = p._2();
return xs.zip(ys).map(new F<P2<Integer, Integer>, Integer>() {
public Integer f(P2<Integer, Integer> q) {
return q._1() + q._2();
}
});
}
});
<小时/>

这可能感觉比必要的更冗长,这是因为 Java 还不支持 lambda 表达式。与此同时,IDEs can help使此类技术更易于使用。

关于java - 向 int[] 的所有元素添加常量值的最短方法是什么?矩阵加法怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876380/

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