如何使用java8给list集合中的数据进行自动编号
时间: 2023-05-09 19:02:46 浏览: 1106
java代码-使用ArrayList对员工信息进行添加和显示
使用Java8中的Stream API,我们可以很方便地对集合中的数据进行自动编号。
首先,我们可以使用`IntStream.range()`方法生成一个整数范围,代表编号序列。然后,我们可以使用`Stream.zip()`方法将集合中的数据和编号序列按顺序对应起来,并使用`AbstractMap.SimpleImmutableEntry()`将它们转化为键值对。
最后,我们可以将键值对转化为自定义的对象,例如使用构造器创建一个包含编号的对象。
以下是示例代码:
```java
public class Example {
public static void main(String[] args) {
List<String> strings = Arrays.asList("apple", "banana", "cherry", "date");
List<MyObject> objects = IntStream.range(0, strings.size())
.mapToObj(i -> new AbstractMap.SimpleImmutableEntry<>(i, strings.get(i)))
.map(entry -> new MyObject(entry.getKey(), entry.getValue()))
.collect(Collectors.toList());
objects.forEach(System.out::println);
}
}
class MyObject {
private final int id;
private final String value;
public MyObject(int id, String value) {
this.id = id;
this.value = value;
}
@Override
public String toString() {
return "MyObject{id=" + id + ", value='" + value + "'}";
}
}
```
输出结果为:
```
MyObject{id=0, value='apple'}
MyObject{id=1, value='banana'}
MyObject{id=2, value='cherry'}
MyObject{id=3, value='date'}
```
阅读全文