【发布时间】:2017-10-28 16:29:25
【问题描述】:
我想使用比较器对 String 类型的 ArrayList 进行排序。如果 ArrayList 存储对象,我只找到了有关如何执行此操作的示例。
我有一个包含 10 个符号的字符串的 ArrayList,其中最后 5 个符号是构成数字的数字。我想按每个字符串末尾的那些数字的升序求解一个数组列表。我该怎么做?
谢谢!
【问题讨论】:
-
String是一个Object。您尝试过什么(确切地)?让我们看一些代码。 -
private static ArrayList<String> allCodes = new ArrayList<String>(); //add some codes in .... private void sortAllCodesNumbers (){ Collections.sort(allCodes, allCodes.getCompByNum()); } -
public static Comparator<String> getCompByNum() { Comparator comp = new Comparator<String>(){ @Override public int compare(allBooks b1, allBooks b2) { String IDnumbers1 = b1.substring(AUTHOR_ID_LENGHT+GENRE_LENGTH); int number1 = Integer.parseInt(IDnumbers1); String IDnumbers2 = b2.substring(AUTHOR_ID_LENGHT+GENRE_LENGTH); int number2 = Integer.parseInt(IDnumbers1); return number1.compareTo(number2); } }; return comp; } -
检查这个:List
list= new ArrayList (); list.add("abc456"); list.add("abc123"); list.add("abc012"); System.out.println(list); Collections.sort(list); System.out.println(list);输出:[abc456,abc123,abc012] [abc012,abc123,abc456]
标签: java arraylist comparator