JAVA中使用JDK8表达式给list对象列表中的多个元素批量赋值
时间: 2023-08-06 13:01:46 浏览: 221
如果要批量给一个对象列表中的多个属性赋值,可以使用Java 8中Stream API的map方法和forEach方法的组合实现。具体操作如下:
假设有一个List<Person>类型的列表,要将其中所有的Person对象的age属性都赋值为18,同时将name属性都赋值为"Tom",可以使用如下代码:
```java
List<Person> personList = new ArrayList<>(); // 假设已经初始化列表
personList.stream().map(person -> {
person.setAge(18);
person.setName("Tom");
return person;
}).forEach(person -> {});
```
上述代码中,使用了Stream API中的map方法,将每个Person对象的age和name属性都设置为指定值,然后将处理后的Person对象再返回;接着使用forEach方法,对返回的每个Person对象执行一个空操作,这样就能够实现批量赋值的目的。
需要注意的是,上述代码可以真正地改变列表中元素的属性值,因为map方法返回的是一个新的对象列表,forEach方法将对新对象列表中的元素执行操作。
相关问题
JAVA中使用JDK8表达式给list对象列表中的元素批量赋值
如果是List对象列表,可以使用Java 8的Stream API中的forEach方法实现批量给列表中的所有对象的某个属性赋值。具体操作如下:
假设有一个List<Person>类型的列表,要将其中所有的Person对象的age属性都赋值为18,可以使用如下代码:
```java
List<Person> personList = new ArrayList<>(); // 假设已经初始化列表
personList.stream().forEach(person -> person.setAge(18));
```
上述代码中,使用了Stream API中的forEach方法,对列表中的每个元素执行赋值操作,函数式接口参数person表示列表中的每个Person对象,箭头后面的表达式person.setAge(18)表示将person对象的age属性赋值为18。
需要注意的是,上述代码可以真正地改变列表中元素的属性值,因为lambda表达式中访问到的是对象的引用,而不是对象的值。
JAVA中使用JDK8表达式给list列表中的元素批量赋值
可以使用Java 8的Stream API中的forEach方法实现批量给list列表中的元素赋值。具体操作如下:
假设有一个List<Integer>类型的列表,要将其中的所有元素都赋值为2,可以使用如下代码:
```java
List<Integer> list = new ArrayList<>(); // 假设已经初始化列表
list.stream().forEach(i -> i = 2);
```
上述代码中,使用了Stream API中的forEach方法,对列表中的每个元素执行赋值操作,函数式接口参数i表示列表中的每个元素,箭头后面的表达式i = 2表示将i赋值为2。
需要注意的是,上述代码并不能真正地改变列表中元素的值,因为Java 8中的lambda表达式只能访问到变量的值,而不能改变变量的引用。如果要真正地改变列表中元素的值,可以使用for循环遍历列表,或者使用List的replaceAll方法。
阅读全文