📜  java 流排序 - Java (1)

📅  最后修改于: 2023-12-03 15:16:01.501000             🧑  作者: Mango

Java流排序

在Java中,对流进行排序非常简单。可以使用Java 8中引入的Stream.sorted()方法,或者使用任何Java版本中提供的Arrays.sort()方法。在本文中,我们将探讨如何在Java中排序流。

Stream.sorted()方法

Stream.sorted()方法用于在流中对元素进行排序。以下是一个简单的例子:

List<String> list = Arrays.asList("c", "a", "b");
List<String> sortedList = list.stream().sorted().collect(Collectors.toList());
System.out.println(sortedList); //输出[a, b, c]

该代码将字符串列表list转换为流,然后对其进行排序。sorted()方法默认按自然顺序排序,因此输出结果为[a, b, c]

如果需要根据元素的特定属性对流进行排序,可以使用sorted()方法的重载版本。例如,可以按字符串长度进行排序:

List<String> list = Arrays.asList("cccc", "aa", "bbb");
List<String> sortedList = list.stream().sorted((s1, s2) -> s1.length() - s2.length()).collect(Collectors.toList());
System.out.println(sortedList); //输出[aa, bbb, cccc]

在上面的代码中,我们使用了一个Lambda表达式来比较字符串的长度。这样,输出结果就按字符串长度排序了。

Arrays.sort()方法

除了Stream.sorted()方法之外,还可以使用Arrays.sort()方法对数组进行排序。以下是一个示例:

int[] array = new int[]{3, 1, 4, 1, 5, 9};
Arrays.sort(array);
System.out.println(Arrays.toString(array)); //输出[1, 1, 3, 4, 5, 9]

在上面的代码中,我们使用Arrays.sort()方法对整数数组进行排序。由于默认是升序排序,因此输出结果为[1, 1, 3, 4, 5, 9]

如果需要进行自定义排序,可以使用Arrays.sort()方法的另一个重载版本,该版本允许您提供一个比较器:

String[] array = new String[]{"cccc", "aa", "bbb"};
Arrays.sort(array, (s1, s2) -> s1.length() - s2.length());
System.out.println(Arrays.toString(array)); //输出[aa, bbb, cccc]

在上面的代码中,我们使用Arrays.sort()方法和一个Lambda表达式,按字符串长度对字符串数组进行排序。

总结

在本文中,我们介绍了如何在Java中对流进行排序。首先,我们使用Stream.sorted()方法对流进行排序,这是JDK 8中引入的新方法。其次,我们使用Arrays.sort()方法对数组进行排序,在某些情况下可能是更好的选择。无论您使用哪种方法,排序都应该简单而直接。