【发布时间】:2018-07-12 01:02:05
【问题描述】:
给定:
static class Item {
String name;
int index;
Item(String name) {
this.name = name;
}
}
@Test
public void test() {
List<Item> items =
Arrays.stream(new String[] {"z", "y", "x"})
.map(Item::new)
.collect(Collectors.toList());
items.sort(Comparator.comparing(o -> o.name));
// begin functionalize me
int i = 0;
for (Item it : items) {
it.index = i++;
}
// end functionalize me
assertEquals(0, items.get(0).index);
assertEquals(1, items.get(1).index);
assertEquals(2, items.get(2).index);
}
在 Java 8 中,在“功能化我”cmets 之间编写代码的更实用的方法是什么?我正在考虑使用 reduce 或 collect 的策略,但在我的脑海中看不到解决方案。
【问题讨论】:
标签: java-8 functional-programming