有一个字符串列表,每个字符串都有 4 组值,它们将根据这些值进行排序。
1. 序列号
2. 状态示例:应按顺序排列(“cooked”、“boiled”、“fresh”、“raw”)
3. 日期(完整 ISO-8601 日期)
4. 按字母顺序
我首先想按序列号对列表进行排序。然后,如果两个或多个值具有相同的序列号,我想按已经定义的字符串顺序(STATE HERE)对它们进行排序。现在按日期和时间对状态的每个重复类别进行排序。现在按字母顺序对每个重复的日期/时间进行排序。
所以基本上需要4级排序。
我首先是这样排序的。我不确定如何前进。
List<String> allStrings= new ArrayList<String>();
List<String> rankList= new ArrayList<String>();
List<String> stateList= new ArrayList<String>();
List<String> dateList= new ArrayList<String>();
List<String> rankListCopy = new ArrayList<String>(rankList.size());
rankListCopy.addAll(rankList);
Collections.sort(rankListCopy,Collections.reverseOrder());
for(String el: rankListCopy) {
System.out.println(el);
}
if(rankList.equals(rankListCopy)) {
System.out.println("CARDS ARE ARRANGED IN serial ORDER");
}
else{
System.out.println("CARDS ARE NOT ARRANGED IN serial ORDER"); }
例子:
String rank state date alphabetically
Europe 2 raw 2019-06-12T09:00:00Z
India 5 raw 2018-06-12T09:00:00Z
new york 5 boiled 2020-07-12T09:00:00Z
US 0 cooked 2020-06-12T09:00:00Z
china 0 cooked 2020-06-12T09:00:00Z
输出:
Europe
newyork
india
china
US