用lamda表达式对List<Integer> list 里的数据顾虑出奇数,再把所有 奇数求平方,求和
时间: 2024-12-16 15:29:47 浏览: 4
你可以使用Java 8的Stream API以及Lambda表达式来完成这个操作。首先,你需要过滤出列表中的奇数,然后对这些奇数求平方并计算它们的总和。下面是相应的代码示例:
```java
import java.util.Arrays;
import java.util.List;
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); // 假设这是你要处理的整数列表
int sumOfSquares = list.stream() // 使用stream()
.filter(n -> n % 2 != 0) // 过滤出奇数
.map(n -> n * n) // 对每个奇数求平方
.sum(); // 求和
System.out.println("Sum of squares of odd numbers: " + sumOfSquares);
```
在这个例子中,`list.stream()`创建了一个流,`.filter(n -> n % 2 != 0)`应用了一个函数来筛选出奇数,`.map(n -> n * n)`将奇数转换为它们的平方,最后 `.sum()`计算所有结果的总和。
相关问题
lamda表达式 对 List<Map<String, Object>> 取值并创建新的list
使用 Lambda 表达式对 List<Map<String, Object>> 中所有 Map 对象中 key 为 "lambda" 的 value 值进行提取,并且将这些 value 值放入新的 List 中,可以使用如下代码实现:
```java
List<Map<String, Object>> originalList = ... // 原始 List
List<Object> lambdaValues = originalList.stream()
.map(map -> map.get("lambda"))
.filter(Objects::nonNull)
.collect(Collectors.toList());
```
这里使用了 Java 8 中的 Stream API,首先通过 stream() 方法将原始 List 转换为一个 Stream,然后使用 map() 方法将每一个 Map 对象中 key 为 "lambda" 的 value 值提取出来,再通过 filter() 方法过滤掉 null 值,最后使用 collect() 方法将所有非 null 的 lambda 值收集到一个新的 List 中。最终得到的 lambdaValues 就是所有 Map 对象中 key 为 "lambda" 的 value 值组成的 List。
用java lamda方式 list<string>转list<float>
假设你有一个 `List<String>` 类型的列表 `stringList`,你可以使用 Java 8 中的 Lambda 表达式和 Stream API 将其转换为 `List<Float>` 类型的列表 `floatList`,代码如下:
```java
List<String> stringList = Arrays.asList("1.2", "3.4", "5.6");
List<Float> floatList = stringList.stream()
.map(Float::parseFloat)
.collect(Collectors.toList());
```
上面的代码首先将 `stringList` 转换为一个 Stream,然后使用 `map()` 方法将每个字符串转换为相应的浮点数,最后使用 `collect()` 方法将结果转换为一个 `List<Float>` 类型的列表 `floatList`。在 `map()` 方法中,我们使用 `Float::parseFloat` 方法引用来将字符串转换为浮点数。
阅读全文