Ace*_*Ace 1 java reference java-stream
例如,考虑下面的代码
List<Reference> references = context.getReferences()
.stream()
.filter(ref -> ref.getCondition() == SOMETHING_DESIRABLE)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
现在,如果我改变引用列表中的每个引用,它是否会反映在原始context.references中?
你的问题的答案是肯定的。如下图所示:
private void run() {
List<Ref> original = new ArrayList<>();
original.add(new Ref(1, "A"));
original.add(new Ref(2, "B"));
original.add(new Ref(3, "C"));
System.out.println("Original: " + original);
// Original: [Ref{id=1, name='A'}, Ref{id=2, name='B'}, Ref{id=3, name='C'}]
List<Ref> results = original.stream().collect(Collectors.toList());
System.out.println("Aggregated: " + results);
// Aggregated: [Ref{id=1, name='A'}, Ref{id=2, name='B'}, Ref{id=3, name='C'}]
results.forEach(r -> r.name = r.name + "CHANGED");
System.out.println("Original: " + original);
//Original: [Ref{id=1, name='ACHANGED'}, Ref{id=2, name='BCHANGED'}, Ref{id=3, name='CCHANGED'}]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1802 次 |
| 最近记录: |