java lamda 按照字段 在 List<String> 位置进行排序
时间: 2024-05-07 09:23:43 浏览: 116
可以使用Java 8的Lambda表达式和Comparator接口来实现按照List中某个字段进行排序。例如,如果你有一个List<String>,其中每个字符串都包含一个数字和一个字符串,如"3 abc","1 def","2 ghi",你可以按照数字字段进行排序,如下所示:
```java
List<String> list = Arrays.asList("3 abc", "1 def", "2 ghi");
Collections.sort(list, (a, b) -> Integer.compare(Integer.parseInt(a.split(" ")[0]), Integer.parseInt(b.split(" ")[0])));
System.out.println(list); // 输出 [1 def, 2 ghi, 3 abc]
```
在这个例子中,我们使用Collections.sort()方法来对List进行排序。我们传递了一个Lambda表达式作为第二个参数,该Lambda表达式使用Comparator接口来比较两个字符串。Lambda表达式首先将字符串分割成数字和字符串部分,然后将数字部分转换为整数,并使用Integer.compare()方法进行比较。这样,List中的元素将按照数字部分进行排序。
相关问题
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() 方法来获取字符串的长度,并比较它们的大小关系。这样,我们就可以按照字符串长度进行排序了。
用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` 方法引用来将字符串转换为浮点数。
阅读全文