亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

List.sort 比較器排序

List.sort 比較器排序

寶慕林4294392 2018-07-19 17:23:23
查詢到的數據放入List中,T為實體類,假設有兩個字段A和B當 A==1時將其排序靠前,并按照B字段排序也就說,A==1的數據,要在A!=1的數據前面,A==1的數據還要再根據B字段排序,請不吝賜教。
查看完整描述

1 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

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

class Untitled {
    public static void main(String[] args) {
        List<I> list = new ArrayList<I>();
        list.add(new I(1, 3));
        list.add(new I(1, 2));
        list.add(new I(1, 5));
        list.add(new I(0, 5));
        list.add(new I(7, 1));
        list.add(new I(8, 0));
        list.add(new I(9, 3));
        list.add(new I(4, 9));
        list.add(new I(5, 5));
        Collections.sort(list, new Comparator<I>() {
            @Override
            public int compare(I o1, I o2) {
                if (o1.A == 1 && o2.A == 1)
                    return o1.B - o2.B;
                if (o1.A == 1 || o2.A == 1)
                    return o1.A == 1 ? -1 : 1;
                return o1.B - o2.B;
            }
        });
        System.out.println(list);
    }
}

class I
{
    public int A;
    public int B;
    public I(int a, int b) { A = a; B = b; }
    @Override
    public String toString() {
        return A + "," + B;
    }
}

運行結果
[1,2, 1,3, 1,5, 8,0, 7,1, 9,3, 0,5, 5,5, 4,9]

查看完整回答
反對 回復 2018-07-31
  • 1 回答
  • 0 關注
  • 1056 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號