Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java sort()方法

集合框架的 sort ()方法使用合并排序算法對(duì)集合的元素進(jìn)行排序。

合并排序算法基于分而治之規(guī)則。 要了解有關(guān)合并排序的更多信息,請(qǐng)?jiān)L問合并排序算法。

讓我們以sort()方法為例。

示例:按升序排序

import java.util.ArrayList;
import java.util.Collections;

class Main {
    public static void main(String[] args) {

        //創(chuàng)建數(shù)組列表
        ArrayList<Integer> numbers = new ArrayList<>();

        //添加元素
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: " + numbers);

        //使用sort()方法
        Collections.sort(numbers);
        System.out.println("Sorted ArrayList: " + numbers);

    }
}

輸出結(jié)果

Unsorted ArrayList: [4, 2, 3]
Sorted ArrayList: [2, 3, 4]

正如您看到的,默認(rèn)情況下,排序按照自然順序(升序)進(jìn)行。但是,我們可以自定義 sort ()方法的排序順序。

自定義排序順序

在Java中,可以自定義sort()方法,使用Comparator接口以相反的順序執(zhí)行排序。

示例:按降序排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

class Main {
    public static void main(String[] args) {

        //創(chuàng)建數(shù)組列表
        ArrayList<Integer> numbers = new ArrayList<>();

        //添加元素
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: " + numbers);

        //使用sort()方法
        Collections.sort(numbers);
        System.out.println("Natural Sorting: " + numbers);

        //使用自定義的sort()方法
        Collections.sort(numbers, new CustomComparator());
        System.out.println("Customized Sorting: " + numbers);

    }
}

class CustomComparator implements Comparator<Integer> {

    @Override
    public int compare(Integer animal1, Integer animal2) {
        int value =  animal1.compareTo(animal2);
        //元素按相反順序排序
        if (value > 0) {
            return -1;
        }
        else if (value < 0) {
            return 1;
        }
        else {
            return 0;
        }
    }
}

輸出結(jié)果

Unsorted ArrayList: [4, 2, 3]
Natural Sorting: [2, 3, 4]
Customized Sorting: [4, 3, 2]

在上面的示例中,我們使用了sort()方法和CustomComparator作為參數(shù)。

這里,CustomComparator是一個(gè)實(shí)現(xiàn)Comparator接口的類。進(jìn)一步了解Java Comparator接口。

然后重寫compare()方法。該方法現(xiàn)在將按相反順序?qū)υ嘏判颉?/p>

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清