comparator.comparing能给字符串排序嘛
时间: 2023-07-16 08:11:28 浏览: 60
是的,可以使用 `comparator.comparing` 对字符串进行排序。例如,以下代码将字符串列表按照字典序升序排序:
```
List<String> strings = Arrays.asList("foo", "bar", "baz");
Collections.sort(strings, Comparator.comparing(String::toString));
```
其中,`Comparator.comparing` 接受一个函数式接口作为参数,该接口将被应用于列表中的每个元素,以比较它们的顺序。在这种情况下,`String::toString` 返回每个字符串本身,因此字符串将按照字典序进行排序。
相关问题
Comparator.comparing 数字字符串比较
以下是使用`Comparator.comparing`进行数字字符串比较的示例代码:
```java
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] arr = {"123", "45", "6789", "0", "987654321"};
Arrays.sort(arr, Comparator.comparingInt(Integer::parseInt));
System.out.println(Arrays.toString(arr));
}
}
```
输出结果为:
```
[0, 45, 123, 6789, 987654321]
```
在上述示例中,我们首先定义了一个字符串数组`arr`,其中包含了一些数字字符串。然后,我们使用`Arrays.sort`方法对该数组进行排序,排序时使用了`Comparator.comparingInt(Integer::parseInt)`作为比较器。该比较器首先将字符串转换为整型数字,然后进行比较。由于整型数字的比较规则与字符串的比较规则不同,因此可以实现数字字符串的比较。
Comparator.comparing 中文排序
Comparator.comparing是Java 8中的一个静态方法,它可以用于实现自定义排序。在中文排序中,我们可以使用Comparator.comparing方法来实现按照中文字符的顺序进行排序。具体实现方法是,我们可以使用Collator类来获取一个中文排序器,然后将其传递给Comparator.comparing方法。下面是一个示例代码:
```
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class ChineseSortDemo {
public static void main(String[] args) {
List<String> list = Arrays.asList("张三", "李四", "王五", "赵六");
Collator collator = Collator.getInstance(java.util.Locale.CHINA);
list.sort(Comparator.comparing(String::toString, collator));
System.out.println(list);
}
}
```
在上面的代码中,我们首先创建了一个包含中文字符串的列表,然后使用Collator.getInstance方法获取一个中文排序器。最后,我们将中文排序器传递给Comparator.comparing方法,以实现按照中文字符的顺序进行排序。