Gau*_*ani 0 java arrays java-8
我有两个班级 A 级和 B 级。如下:
A类:
class A {
public String a;
public A() {
}
public A(final String a) {
this.a = a;
}
}
Run Code Online (Sandbox Code Playgroud)
B类:
class B {
private A a;
private String b;
public B() {
}
public B(final A a) {
this.a = a;
}
}
Run Code Online (Sandbox Code Playgroud)
我将 A[] 转换为 B[] 的地方如下:
public static void main(final String[] args) {
final A[] myA = new A[3];
myA[0] = new A("a");
myA[1] = new A("b");
myA[2] = new A("c");
B[] myB = new B[myA.length];
IntStream.range(0, myA.length).forEach(propIndex->{
myB[propIndex] = new B(myA[propIndex]);
});
System.out.println(myB.length);
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以在不forEach使用 Index迭代()的情况下做到这一点?toArray(B[]::new)我不必使用的东西或任何其他方式forEach?
你可以做:
B[] myB = Arrays.stream(myA) // create a Stream<A>
.map(B::new) // map each instance of A to instance of B
.toArray(B[]::new); // collect to array of B
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |