如何对具有
等元素的arraylist进行排序02112-S1530
02112-S1529
02112-S1531
按升序排列。
我正在使用Collection.sort(列表名称);
但获得输出
02112-S1531
02112-S1529
02112-S1530
预期输出为:
02112-S1529
02112-S1530
02112-S1531
我确实喜欢
List<String> gbosIdsList = new ArrayList<String>();
gbosIdsList.add("02112-S1530");
gbosIdsList.add("02112-S1529");
gbosIdsList.add("02112-S1531");
Collections.sort(gbosIdsList);
Iterator itr = gbosIdsList.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
答案 0 :(得分:1)
我尝试了你的代码并获得了输出:
02112-S1529
02112-S1530
02112-S1531
另外,你已经使你的迭代器成为通用的
泛型101: don't use Raw type in new code
Iterator<String> itr = gbosIdsList.iterator();
答案 1 :(得分:0)
定义像这样的比较器
public class MyComparator implements Comparator<String> {
/* (non-Javadoc)
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
@Override
public int compare(String arg0, String arg1) {
//Do your processing here
//and
//return +1 if arg0 > arg1
//return 0 if arg0 == arg1
//return -1 if arg0 < arg1
return 0;
}
}
然后将其添加到您的sort
List<String> gbosIdsList = new ArrayList<String>();
//add values
Collections.sort(gbosIdsList,new MyComparator());
FYR,您可以阅读this