【发布时间】:2019-09-04 20:50:29
【问题描述】:
有一个字符串列表,每个字符串都有 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
【问题讨论】:
-
如果代码使用适当的缩进进行格式化,将会对我们(以及您自己)有所帮助
-
您能否展示代码中定义的字符串(需要排序)的示例。不仅仅是一个表格,还有该字符串在代码中的表示方式。你确定你是在排序一个字符串而不是一组具有属性的对象吗?
-
有一个字符串列表 [europe, india,newyork, us,china] 有它的排名列表[2,5,5,0,0] 有一个州列表[raw ,生的,煮的,熟的,熟的]
-
你是说这些列表中的元素是对应的吗?就像我们在第一个位置选择所有元素,我们得到“欧洲,2,原始”,如果我们在第二个位置得到元素,我们得到“印度,5,原始”——这些是输入行?
-
是的@MikhailValiev。它们对应并且是输入行。