首页 > 解决方案 > ArrayList 的自定义排序

问题描述

我想根据我的逻辑对 ArrayList 进行排序:

        ArrayList<String> cards = new ArrayList<>(Arrays.asList("K","A","7","Q","6","J","T"));
// desired result: [6, 7, T, J, Q, K, A]

所以就像扑克牌一样,这是升序:2,3,4,5,6,7,8,9,T,J,Q,K,A

我怎样才能实现它?

标签: java

解决方案


请尝试此代码是否对您有帮助。

import java.util.*;

class CustomComparator implements Comparator<String> {
    final String ORDER= "23456789TJQKA";
    public int compare(String a, String b) {
        return ORDER.indexOf(a) -  ORDER.indexOf(b) ;
    }
}

public class SortIt {

    public static void main(String[] args) {
        List cards = new ArrayList<>(Arrays.asList("K", "A", "7", "Q", "6", "J", "T"));
        Collections.sort(cards, new CustomComparator());
        System.out.println(cards);

    }
}

输出:

[6, 7, T, J, Q, K, A]


推荐阅读