本文介绍了我怎样才能按照我想要的方式对这个 ArrayList 进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是一个简单的ArrayList排序程序:
Here is a simple sorting program of an ArrayList:
ArrayList<String> list = new ArrayList<String>(); list.add("1_Update"); list.add("11_Add"); list.add("12_Delete"); list.add("2_Create"); Collections.sort(list); for (String str : list) { System.out.println(str.toString()); }我期望这个程序的输出为:
I was expecting the output of this program as:
1_Update 2_Create 11_Add 12_Delete但是当我运行这个程序时,我得到的输出为:
But when I run this program I am getting output as:
11_Add 12_Delete 1_Update 2_Create这是为什么,我如何让 ArrayList 按照预期的输出进行排序?
Why is this and how do I get the ArrayList to sort as shown in the expected output?
推荐答案您可以编写自定义比较器:
You could write a custom comparator:
Collections.sort(list, new Comparator<String>() { public int compare(String a, String b) { return Integer.signum(fixString(a) - fixString(b)); } private int fixString(String in) { return Integer.parseInt(in.substring(0, in.indexOf('_'))); } });更多推荐
我怎样才能按照我想要的方式对这个 ArrayList 进行排序?
发布评论