用java lamda方式 list<string>转list<float> 并保留五位小数
时间: 2023-12-09 13:03:26 浏览: 42
假设原始的List<String>为stringList,可以使用Java 8的Lambda表达式和Stream API来实现该功能,代码如下:
```
List<Float> floatList = stringList.stream()
.map(Float::parseFloat)
.map(f -> (float)(Math.round(f * 100000) / 100000.0))
.collect(Collectors.toList());
```
上述代码中,首先使用stream()方法将stringList转换为Stream<String>类型,然后使用map()方法将每个String元素转换为对应的Float类型。接着使用第二个map()方法将每个Float类型的元素保留五位小数,最后使用collect()方法将结果收集到List<Float>类型的floatList中。
其中,第二个map()方法使用了Lambda表达式和Math.round()方法来实现保留五位小数的功能。具体来说,将每个Float类型元素乘以100000,将结果四舍五入取整,再除以100000.0,即可得到保留五位小数的结果。
相关问题
用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` 方法引用来将字符串转换为浮点数。
java lamda 按照 List<String> 排序
可以使用 Java 8 中的 Lambda 表达式和 Stream API 来对 List<String> 进行排序。例如,假设我们有一个名为 list 的 List<String> 对象,我们可以按字母顺序对其进行排序,代码如下:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "pear");
Collections.sort(list, (s1, s2) -> s1.compareTo(s2));
```
在这个例子中,我们使用 Collections.sort() 方法来对 List<String> 进行排序。第二个参数是一个 Lambda 表达式,它接受两个 String 类型的参数 s1 和 s2,并返回一个 int 类型的结果。在这个 Lambda 表达式中,我们使用 String 类的 compareTo() 方法来比较两个字符串的大小关系,从而实现排序。
如果我们想要按照字符串长度进行排序,我们可以修改 Lambda 表达式的实现方式,如下所示:
```
Collections.sort(list, (s1, s2) -> s1.length() - s2.length());
```
在这个例子中,我们使用 String 类的 length() 方法来获取字符串的长度,并比较它们的大小关系。这样,我们就可以按照字符串长度进行排序了。