如何在java中对数字数组列表进行排序,并举例说明

178 阅读2分钟

这是一个关于在java中对数字列表进行排序的不同方法的简短教程。

假设我们有一组数字,比如100,200,4,5,79,26。

我们可以使用数组或列表实现(ArrayListLinkedListjava.util 包中用于对数字进行排序。

Java8 如何用stream.sorted()对数字列表进行排序?

这是一个对ArrayList 的数字进行排序的例子

  • 自然顺序
  • 升序
  • 降序

以下是步骤的顺序

  • 使用Arrays.asList 方法创建一个内联初始化的ArrayList
  • 使用stream方法进行迭代并返回stream
  • sorted 再次按自然顺序对流进行排序并返回流
  • 最后使用collection方法返回集合

对于descending order ,你可以覆盖sorted方法,如下所示

  sorted((item1, item2) -> item2.compareTo(item1)

对于ascending order ,你可以覆盖sorted方法,如下所示

  sorted((item1, item2) -> item1.compareTo(item2)

下面是一个完整的例子

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Test {
    public static void main(String[] args) {
        List list = Arrays.asList(100,200,4,5,79,26);
        System.out.println("Initial List: "+list);

        List sortedList = list.stream().sorted().collect(Collectors.toList());
        System.out.println("Sorted Natural List: "+sortedList);
        List sortedDescendingList = list.stream().sorted((item1, item2) -> item2.compareTo(item1)).collect(Collectors.toList());
        List sortedAscendingList = list.stream().sorted((item1, item2) -> item1.compareTo(item2)).collect(Collectors.toList());

        System.out.println("Sorted Ascending List: "+sortedAscendingList);
        System.out.println("Sorted Descending List: "+sortedDescendingList);

    }
}

Initial List: [100, 200, 4, 5, 79, 26]
Sorted Natural List: [4, 5, 26, 79, 100, 200]
Sorted Ascending List: [4, 5, 26, 79, 100, 200]
Sorted Descending List: [200, 100, 79, 26, 5, 4]

集合排序,以自然和反向顺序对数字进行排序示例

我们使用Sort 方法进行自然排序

  • List.sort()方法
  • Collections.sort()方法

对于reverse 顺序,你可以使用reverse 方法

  • List.reverse()方法
  • Collections.reverse()方法
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        Integer[] numbs = new Integer[]{100, 200, 4, 5, 79, 26};
        System.out.println("Initial List=" + numbs);
        /*For sorting numbers we can use Arrays's sort method*/
        Arrays.sort(numbs);

        Integer[] numbs1 = new Integer[]{100, 200, 4, 5, 79, 26, 20};

        /*For sorting numbers we can also use List's  sort method*/
        List listNumbers = Arrays.asList(numbs1);
        Collections.sort(listNumbers);
        System.out.println("Sort List using List sort=" + listNumbers);

        Arrays.sort(numbs);
        Collections.sort(listNumbers);
        System.out.println("List reverse order=" + numbs);
        System.out.println("Collections reverse order=" + listNumbers);


    }
}

数组可以存储静态的数据项列表,这意味着大小不能增长和固定。

而List则是存储动态数据的列表。

总结

我们已经学会了用java8的流和排序方法对列表中的数字进行排序的不同方法。