我需要按顺序将A.a和A.b放入一个int列表:
class A {
int a;
int b;
}
A a = new A();
a.a = 1;
a.b = 2;
List<A> list = Arrays.asList(a);
List<Integer> intList = list.stream().map(?).collect(Collectors.toList());
assert intList.equals(Arrays.asList(1,2));
如何按流执行此操作?以及如何反向执行此操作?
我的意思是“反向”是根据List<A>
创建List<Integer>
,因为示例代码是根据List<Integer>
创建List<A>
的。抱歉,简短。
答案 0 :(得分:2)
只需创建Stream
和A
的整数flatMap
的{{1}},以便Stream
的整数成为外部{{1}的一部分}。
A anA
编辑
您也asked则相反:
Stream
这意味着类 List<Integer> intList = list.stream()
.flatMap(anA -> Stream.of(anA.a, anA.b))
.collect(Collectors.toList());
中的构造函数:
IntStream.range(0, intList.size() / 2)
.mapToObj(i -> new A(intList.get(2*i), intList.get(2*i+1)))
.collect(Collectors.toList());
快速测试:
A
输出为:
A(int a, int b) {
this.a = a;
this.b = b;
}
答案 1 :(得分:0)
FULL OUTER JOIN