【问题标题】:Can you operate on Arrays in Java like in Matlab?你能像在 Matlab 中一样在 Java 中操作数组吗?
【发布时间】:2011-09-25 17:34:43
【问题描述】:

我想知道是否有一种方法可以在不编写函数或 for 循环的情况下执行以下操作:

int[] ma = (3,4,4,5,6,7);
ma += 5;

因此,将 5 添加到数组中的所有元素。 Matlab 允许这样一个方便的快捷方式。

【问题讨论】:

  • 在 C# 中,您可以重载运算符并因此具有这样的语法,我正在广泛使用此功能。在 C# 中 x+y+z 将在 Java 中 a.Add(b.Add(c))

标签: java arrays matlab vector operations


【解决方案1】:

简短回答:不,你不能。您需要编写一个循环来执行此操作。

【讨论】:

    【解决方案2】:

    一句话:没有。 Java 没有这样的操作。但是没有什么可以阻止你编写一个方法add(),它接受一个数组和一个int,并将int 添加到数组中的每个元素。写subtract()multiply()等,你就会有一个不错的小库供自己使用。

    【讨论】:

      【解决方案3】:

      如果你需要这个很多,研究 Scala 可能是一个选择。 Scala 也可以在 JVM 上运行,并且具有折叠之类的功能,可以让您在非常少的代码中定义这些东西。

      但是,它是一种函数式语言,需要与传统(迭代)编程不同的思维方式。

      【讨论】:

      • 我不确定为什么人们会“需要”这样的东西。它只是语法糖;你总是可以只写一个循环或一个新方法来做同样的事情。
      【解决方案4】:

      Java 提供了许多集合类,其功能类似于 Matlab 为数组提供的功能。最接近的匹配是java.util.ArrayList,它由一个数组支持。您可以使用add() 方法将项目附加到集合中,而不是使用+= 运算符。 ArrayList 导出了许多接口,使其与其他 java 包中的许多方法和类兼容。

      【讨论】:

      • 我看不出这有什么关系。
      • 错误答案,你没听懂问题。
      猜你喜欢
      • 2015-12-17
      • 1970-01-01
      • 2013-02-18
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 2023-04-01
      • 2015-09-21
      相关资源
      最近更新 更多