java - 有没有一种快速方法可以从另一个数组创建返回码数组?

标签 java arrays

假设我有一个来自 MyClass 类的对象数组:

MyClass myClassArray[] = {
  new MyClass(0, 1),
  new MyClass(2, 3),
  new MyClass(4, 5),
  new MyClass(6, 7)
};

这里,MyClass 构造函数填充了两个字段,我们将其称为 field1field2。现在假设我要填充一个数组,其中包含 myClassArray 中每个对象的 field1 值(因此该数组将包含值 0, 2, 4 , 6)。以下不起作用:

field1Array = myClassArray.getField1();

是否有一种快速的 1 行方法可以使用属于原始数组中对象的方法的返回码来填充新数组?显然,我可以使用 for 循环来完成此操作,但我宁愿利用该语言的功能(如果存在)。

最佳答案

除非您使用 Java 8+,否则您将需要循环,它会添加 lambda expressions到语言,在这种情况下,您可以将数组映射到新数组:

int[] field1Array = Arrays
                      .stream(myClassArray)
                      .mapToInt(MyClass::getField1)
                      .toArray();

这无疑是一个理论上的答案,因为 Java 8 要到明年第一季度才会正式发布。

关于java - 有没有一种快速方法可以从另一个数组创建返回码数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18057668/

相关文章:

javascript - 将单个对象提取为一个对象,而不是作为一个对象的数组,Javascript

java - Set Cover问题的分支定界算法?

javascript - 如何将多个零插入已存在的数组

java - javax.validation.constraints 中的注释不起作用

java - 如何使用 Java 泛型避免不安全的强制转换警告

python - 检查数组 - 值是否包含在另一个数组中?

iphone - AVErrorInvalidVideoComposition = -11841

c - 在 C 中打印字节,仅不可打印字符为十六进制

java - 我可以在 hibernate 中使用相对路径指示映射文件吗?

java - 使用 JavaFX Dialogs 是否需要 JDK8u40,或者可以使用任何版本?