我使用
java
编写了以下代码。
List<String> list = new ArrayList<String>();
list.add("book1");
list.add("book2");
list.add("book3");
list.add("book4");
String combined = "";
for(int i=0;i<list.size();i++) {
combined = combined + (i+1)+ ". "+list.get(i)+" \r\n";
}
System.out.println(combined);
输出
1. book1
2. book2
3. book3
4. book4
如何使用
streams
编写此代码。我尝试执行以下操作:
String combined2 = "";
List<String> list2 = IntStream.range(0, list.size()).mapToObj(i->i+1+". "+list.get(i)+" \r\n").toList();
for(String s:list2) {
combined2 = combined2+s;
}
System.out.println(combined2);
但我不想在这里使用
for
循环。我该如何改进我的方法?
Stream.collect
。
这是修改后的代码。
String list2 = IntStream.range(0, list.size())
.mapToObj(i-> i+1 + ". " + list.get(i))
.collect(Collectors.joining(System.lineSeparator()));
输出:
1. book1
2. book2
3. book3
4. book4