最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中Arrays.sort()排序方法舉例詳解

 更新時間:2023年11月17日 11:38:04   作者:從0到1的旅行家  
這篇文章主要給大家介紹了關(guān)于java中Arrays.sort()排序方法舉例詳解的相關(guān)資料,Java?Arrays.sort()方法對數(shù)組進(jìn)行排序,通常情況下直接傳入數(shù)組,默認(rèn)升序排序,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

Java中的Arrays.sort()方法是一種內(nèi)置的排序方法,用于對數(shù)組進(jìn)行排序。這是一個來自java.util.Arrays類的靜態(tài)方法,用于對所有的基本數(shù)據(jù)類型對象數(shù)組以及對象數(shù)組進(jìn)行排序。排序的默認(rèn)順序是升序。

一、方法重載

Arrays.sort()方法有許多重載版本,可以接受不同類型的輸入,并對它們進(jìn)行排序。以下是一些常見的重載版本:

  • Arrays.sort(byte[] a): 對字節(jié)型數(shù)組進(jìn)行排序
  • Arrays.sort(char[] a): 對字符型數(shù)組進(jìn)行排序
  • Arrays.sort(double[] a): 對雙精度浮點型數(shù)組進(jìn)行排序
  • Arrays.sort(float[] a): 對浮點型數(shù)組進(jìn)行排序
  • Arrays.sort(int[] a): 對整型數(shù)組進(jìn)行排序
  • Arrays.sort(long[] a): 對長整型數(shù)組進(jìn)行排序
  • Arrays.sort(short[] a): 對短整型數(shù)組進(jìn)行排序
  • Arrays.sort(Object[] a): 對對象數(shù)組進(jìn)行排序,此方法要求數(shù)組中的對象必須實現(xiàn)了Comparable接口
  • Arrays.sort(T[] a, Comparator<? super T> c): 對對象數(shù)組進(jìn)行排序,使用一個定制的Comparator對象來比較數(shù)組中的元素

二、注意事項

  • 對于對象數(shù)組,如果使用默認(rèn)的Arrays.sort(Object[] a)方法進(jìn)行排序,那么數(shù)組中的對象必須實現(xiàn)了Comparable接口。如果對象沒有實現(xiàn)這個接口,那么在運行時會拋出ClassCastException

  • Arrays.sort(T[] a, Comparator<? super T> c)這個版本的方法允許你傳入一個Comparator對象來自定義排序的規(guī)則。如果傳入的Comparator對象為null,那么此方法將會使用元素的自然順序進(jìn)行排序。

  • 對于對象數(shù)組的排序,Arrays.sort()方法使用的是穩(wěn)定的排序算法,這意味著等值的元素在排序后會保持他們原有的相對位置。

  • Arrays.sort()方法的時間復(fù)雜性為O(n log n)。

  • Arrays.sort()方法會對輸入的數(shù)組進(jìn)行直接排序,也就是說,它會改變輸入數(shù)組的元素順序。如果不希望改變原數(shù)組的元素順序,那么在排序前需要先對數(shù)組進(jìn)行復(fù)制。

三、舉例

(1)對于基本數(shù)據(jù)類型的數(shù)組,排序時會按照升序排序;

int[] arr = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
Arrays.sort(arr); // 對數(shù)組進(jìn)行排序

for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
}

輸出結(jié)果:

1 1 2 3 3 4 5 5 5 6 9

ps:Arrays.sort() 方法使用的是快速排序算法和歸并排序算法,具體使用哪一種算法取決于數(shù)組的大小和類型。當(dāng)數(shù)組長度小于 Arrays.MIN_ARRAY_SORT_GRAN 時,使用插入排序算法對其進(jìn)行排序。

(2)對對象數(shù)組進(jìn)行排序

可以通過實現(xiàn) Comparator 接口來指定比較器對象。Comparator 接口需要實現(xiàn) compare() 方法,該方法接受兩個對象作為參數(shù),并返回一個整數(shù)值,用于表示這兩個對象的大小關(guān)系。如果返回的值為負(fù)數(shù),則表示第一個對象小于第二個對象,為正序;如果返回的值為正數(shù),則表示第一個對象大于第二個對象,為逆序;如果返回的值為0,則表示兩個對象相等。

import java.util.*;

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

class PersonAgeComparator implements Comparator<Person> {
    @Override
    public int compare(Person o1, Person o2) {
        return o1.getAge() - o2.getAge();
    }
}

public class Main {
    public static void main(String[] args) {
        Person[] people = {
                new Person("Alice", 25),
                new Person("Bob", 20),
                new Person("Charlie", 30)
        };

        Arrays.sort(people, new PersonAgeComparator());

        for (Person p : people) {
            System.out.println(p.getName() + " " + p.getAge());
        }
    }
}

輸出結(jié)果

Bob 20
Alice 25
Charlie 30

在該示例中,定義了一個 Person 類,包含兩個屬性 name 和 age。我們按照年齡對 Person 對象數(shù)組進(jìn)行排序,創(chuàng)建了一個 PersonAgeComparator 類,實現(xiàn)了 Comparator 接口,并重寫了 compare() 方法。在  main() 方法中,調(diào)用 Arrays.sort() 方法,并入 PersonAgeComparator 對象,來對 Person 對象數(shù)組進(jìn)行排序。

總結(jié)

到此這篇關(guān)于java中Arrays.sort()排序方法的文章就介紹到這了,更多相關(guān)java Arrays.sort()排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

兴国县| 汉川市| 黄浦区| 江津市| 宁都县| 临湘市| 眉山市| 孟村| 麦盖提县| 鹰潭市| 贡觉县| 西贡区| 武平县| 馆陶县| 达日县| 罗山县| 永川市| 喀什市| 姚安县| 高雄市| 旬阳县| 平利县| 榕江县| 渝北区| 南通市| 石棉县| 都江堰市| 中宁县| 梁河县| 新化县| 隆子县| 廊坊市| 夹江县| 万宁市| 若尔盖县| 化州市| 瓦房店市| 沭阳县| 丰顺县| 彭水| 富源县|