8075509: List.map should return itself if list is unchanged
Fix List.map to match semantics of old Type.map Reviewed-by: jlahoda
This commit is contained in:
parent
24c51e1e1b
commit
c399e03fe2
@ -417,12 +417,15 @@ public class List<A> extends AbstractCollection<A> implements java.util.List<A>
|
||||
return last;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <Z> List<Z> map(Function<A, Z> mapper) {
|
||||
ListBuffer<Z> buf = new ListBuffer<>();
|
||||
for (A a : this) {
|
||||
buf.add(mapper.apply(a));
|
||||
if (nonEmpty()) {
|
||||
List<Z> tail1 = tail.map(mapper);
|
||||
Z head1 = mapper.apply(head);
|
||||
if (tail1 != tail || head1 != head)
|
||||
return tail1.prepend(head1);
|
||||
}
|
||||
return buf.toList();
|
||||
return (List<Z>)this;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
Loading…
Reference in New Issue
Block a user