Java:ArrayList <string>使用比较器排序(ArrayLists不存储对象)

时间:2017-10-28 16:29:26

标签: java arraylist comparator

我想使用比较器对String类型的ArrayList进行排序。如果ArrayList存储对象,我只找到了如何做的例子。

我有一个包含10个符号的字符串ArrayList,其中最后5个符号是形成数字的数字。我想按照每个字符串末尾的那些数字的升序来解决数组列表。我怎么能这样做?

谢谢!

2 个答案:

答案 0 :(得分:3)

这是完成任务的一种方法; sorted接受Comparator个对象。

List<String> result = myArrayList.stream().sorted(Comparator.comparingInt(e -> Integer.parseInt(e.substring(5))))
                                          .collect(Collectors.toList());

或简单地说:

myArrayList.sort(Comparator.comparingInt(e -> Integer.parseInt(e.substring(5))));

答案 1 :(得分:1)

Collections.sort可以使用比较器为您排序列表。另外,你需要String.substring:

Collections.sort(list, new Comparator<String>(){
    @Override
    public int compare(String o1, String o2) {
        return o1.substring(5).compareTo(o2.substring(5));
    }
});