java8将List集合中对象的字段值按照逗号分隔,然后将分割出来的字符串组装成新集合
时间: 2023-07-16 11:16:00 浏览: 130
java 分割字符串
可以使用Java 8的Stream API来实现这个需求。具体步骤如下:
1. 创建一个包含对象的List集合。
2. 使用Stream API的map方法,将List中每个对象转换为其字段值组成的字符串。
3. 使用Collectors.joining方法,将这些字符串用逗号连接起来。
4. 使用Arrays.asList方法将连接后的字符串分割成字符串数组。
5. 使用Stream API的map方法,将字符串数组转换为新的对象集合。
示例代码如下:
```
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Tom", 20),
new Person("Jerry", 22),
new Person("Alice", 18)
);
List<Person> newPeople = people.stream()
.map(person -> person.getName() + "," + person.getAge())
.collect(Collectors.joining(","))
.split(",")
.stream()
.map(str -> {
String[] arr = str.split(",");
return new Person(arr[0], Integer.parseInt(arr[1]));
})
.collect(Collectors.toList());
System.out.println(newPeople);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
输出结果为:
```
[Person{name='Tom', age=20}, Person{name='Jerry', age=22}, Person{name='Alice', age=18}]
```
阅读全文