java8将List集合中对象的某一个字段值按照逗号分隔出集合
时间: 2023-07-16 15:15:19 浏览: 721
可以使用Java8的流式API和Collectors工具类来实现这个功能。具体的代码如下:
假设我们有一个名为Person的类,有字段name和age,现在我们想要将List<Person>中的所有name字段值按照逗号分隔出来形成一个新的List<String>集合。
```
List<Person> personList = new ArrayList<>();
// 假设我们已经将personList中的数据填充完毕
List<String> nameList = personList.stream()
.map(Person::getName) // 获取每个Person对象的name字段值
.collect(Collectors.toList()); // 将结果转换为List<String>集合
String names = String.join(",", nameList); // 将List<String>中的元素用逗号连接起来
```
最后得到的names字符串就是将personList中所有Person对象的name字段值按照逗号分隔出来的结果。
相关问题
java8将List集合中对象的字段值按照逗号分隔,然后将分割出来的字符串组装成新集合
可以使用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}]
```
Java获取集合中对象的某一个字段并拼接成一个逗号间隔字符串
在Java中,如果你想从集合(如List或ArrayList)中获取每个对象的特定字段值,并将它们连接成一个逗号分隔的字符串,你可以这样做:
```java
import java.util.List;
import java.text.StringJoiner;
public class Main {
public static void main(String[] args) {
// 假设你有一个User对象的列表
List<User> userList = ...; // 用户列表
// 获取用户列表中的username字段,并用逗号连接
StringJoiner joiner = new StringJoiner(", ");
for (User user : userList) {
joiner.add(user.getUsername()); // 假设User类有getName()方法
}
// 将结果转换为字符串并打印
String result = joiner.toString();
System.out.println(result);
}
}
class User {
private String username;
// getters and setters...
public String getUsername() {
return this.username;
}
}
```
在这个例子中,`StringJoiner`是一个线程安全的工具类,用于方便地创建和操作以指定字符分隔的字符串序列。`add()`方法会添加元素到连接序列,最后通过`toString()`方法获取整个序列作为字符串。
阅读全文