java中使用stream往集合对象添加属性值
时间: 2023-09-02 11:15:50 浏览: 59
可以使用Java 8引入的Stream API来往集合对象添加属性值。下面是一个示例:
假设我们有一个名为Person的类,它有两个属性:name和age。我们有一个List<Person>列表,我们想要给每个人添加一个country属性,并将其设置为“China”。
```java
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 20));
personList.add(new Person("Bob", 25));
personList.add(new Person("Charlie", 30));
personList.stream()
.forEach(person -> person.setCountry("China"));
```
这里我们使用了Stream的forEach方法,它接受一个Consumer函数式接口作为参数,该接口用于对Stream中的每个元素执行操作。在我们的例子中,我们使用Lambda表达式将“China”设置为每个Person对象的country属性。
相关问题
java中使用stream往集合对象添加多个属性值
可以使用Java 8中的Stream API和lambda表达式来添加集合对象的多个属性值。假设我们有一个Person类,有name、age和gender三个属性,我们可以使用以下代码将多个Person对象添加到List集合中:
```
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25, "female"));
people.add(new Person("Bob", 30, "male"));
people.add(new Person("Charlie", 20, "male"));
```
如果我们想要添加每个人的ID属性,可以使用Stream API的map方法,将每个Person对象映射为一个新的Person对象,并在其中添加ID属性。例如,我们可以使用以下代码:
```
List<Person> peopleWithIds = people.stream()
.map(person -> {
person.setId(UUID.randomUUID().toString());
return person;
})
.collect(Collectors.toList());
```
在上面的代码中,我们使用UUID生成一个唯一的ID字符串,并将其设置为每个Person对象的ID属性。然后,我们使用collect方法将Stream转换为List集合,以便我们可以访问所有添加了ID属性的Person对象。
类似地,我们可以使用Stream API和lambda表达式来添加其他属性值,例如日期、地址等等。只需在map方法中创建一个新的Person对象,并设置所需的属性即可。
java8如何遍历集合对象,获取到对象中的属性值
Java 8可以使用stream()方法来遍历集合对象,然后可以使用map()方法获取对象中的属性值。示例代码如下:
```
List<User> userList = getUserList();
List<String> userNameList = userList.stream().map(User::getName).collect(Collectors.toList());
```
其中,getUserList()方法返回一个包含User对象的List集合,User对象中有一个getName()方法用于获取用户姓名。使用map()方法将User对象转换成用户名,最后使用collect()方法将用户名添加到一个新的List集合中。