有什么方法可以匹配此ArrayList,以便burger1到达位置1?

时间:2019-01-10 11:27:50

标签: java sorting arraylist

我想匹配ArrayList,以便正确的Burgare获得正确的位置 例如Burgare6获得位置6,Burgare2获得位置2,依此类推。

public static void main(String[] args) {

   List<String> burgare = Arrays.asList("1: Burgare 6", "2: Burgare 7", "3: Burgare 2",
                                        "4: Burgare 1", "5: Burgare 3", "6: Burgare 4", 
                                        "7: Burgare 5");

    System.out.println(burgare);

}

2 个答案:

答案 0 :(得分:4)

你在这里。

    Comparator<String> lastNumberComparator = new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return Integer.valueOf(o1.split(" ")[2]).compareTo(Integer.valueOf(o2.split(" ")[2]));
        }
    };

    Collections.sort(burgare, lastNumberComparator);
    System.out.println(burgare);

使用String.split(" ")带空格是一种将字符串分成三个标记“ 4:”,“ Burgare”,“ 1”的快速方法,其中最后一个标记[2]是我们用来排序的值。 / p>

答案 1 :(得分:1)

您可以简单地使用:

Collections.sort(burgare, new Comparator<String>() {
    @Override
    public int compare(String str1, String str2) {
       return Integer.valueOf(str1.split(" ")[2])
                     .compareTo(Integer.valueOf(str2.split(" ")[2]));
    }
});

如果您使用的是Java-8,则:

Collections.sort(burgare, (str1, str2) -> 
         Integer.valueOf(str1.split(" ")[2]).compareTo(Integer.valueOf(str2.split(" ")[2])));