[java] 对list进行排序

我整理了一些关于在Java中对数组和列表进行排序的方法。这是给我自己的备忘录。

排列

int[] array = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8 };
Arrays.sort(array);
Integer[] array = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8 };
Arrays.sort(array, Collections.reverseOrder());

由于使用了Collections类,所以宣言为整数数组。

列出

ArrayList<Integer> al = new ArrayList<>();
al.add(2);
al.add(7);
al.add(1);
al.add(8);
al.add(2);
al.add(8);
Collections.sort(al);
ArrayList<Integer> al = new ArrayList<>();
al.add(2);
al.add(7);
al.add(1);
al.add(8);
al.add(2);
al.add(8);
Collections.sort(al, Collections.reverseOrder());

应用(用户定义类、多个值)

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Main {

    public static void main(String[] args) {

        List<Item> itemList = new ArrayList<>();
        itemList.add(new Item(4, "Book", 1000));
        itemList.add(new Item(2, "Bag", 3000));
        itemList.add(new Item(3, "Calendar", 2000));
        itemList.add(new Item(1, "pen", 200));

        // id昇順ソート
        itemList.sort(Comparator.comparing(Item::getId));

        // id降順ソート
        itemList.sort(Comparator.comparing(Item::getId).reversed());

        // kind昇順ソート
        itemList.sort(Comparator.comparing(Item::getKind));

        // kind降順ソート
        itemList.sort(Comparator.comparing(Item::getKind).reversed());

    }
}

class Item {
    int id;
    String kind;
    int price;

    Item(int id, String kind, int price) {

        this.id = id;
        this.kind = kind;
        this.price = price;
    }

    public int getId() {
        return id;
    }

    public String getKind() {
        return kind;
    }

}

bannerAds