java - 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
我怎样才能实现它?
解决方案
请尝试此代码是否对您有帮助。
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]
推荐阅读
- android - 颤振 - 重新加载时奖励视频广告错误:“ad_not_loaded,奖励视频显示失败,未加载广告,null)”
- r - R熔化/收集文件,带有2个标题行到属性中
- ruby - 使用 Hash 中的键值对作为问答
- scheme - 方案中的 Luhn 算法
- c++ - 如何计算 eigen::Tensor 中非零的数量
- reactjs - “react-dnd”不包含名为“DragDropContext”的导出
- python - pandas dataframe - 从特定条件下获取价值
- mongodb - 创建 mongodb 数据库并通过 docker-compose 填充一些数据
- android - Android - 共享偏好
- swift - 我可以在`map`和`flatMap`函数中做一些不是`transfrom`的事情吗?