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

标签 java arrays

我有一个整数数组。我需要给它的每个元素加 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/

相关文章:

Java - 访问私有(private)实例变量

java - 如何对由 "null"和字符串组合的数组进行排序?

javascript - 通过预定义的 HTML 页面列表进行下一个/上一个导航

Java基本整数数组

php - 如何根据编号设置我的行跨度值。查询中的结果并根据其集合 ID 更改值(如果它是组或集合)?

java - Java 中数组的不常见语法

java - Spring MVC 4 AJAX上传带有额外参数的MultipartFile

java - 带图标的切换按钮

java - java中的动画总是返回到起点吗?

java - 将 java 对象转换为具有已知类型参数的泛型类型