我想使用比较器对String类型的ArrayList进行排序。如果ArrayList存储对象,我只找到了如何做的例子。
我有一个包含10个符号的字符串ArrayList,其中最后5个符号是形成数字的数字。我想按照每个字符串末尾的那些数字的升序来解决数组列表。我怎么能这样做?
谢谢!
答案 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));
}
});