1

次のような要素を持つ配列リストを並べ替える方法

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());           
}
4

2 に答える 2

1

私はあなたのコードを試し、出力を得ました:

02112-S1529
02112-S1530
02112-S1531

また、イテレータを汎用化しました

ジェネリックス101: don't use Raw type in new code

Iterator<String> itr = gbosIdsList.iterator();
于 2013-03-19T10:04:02.403 に答える
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());

参考までにこれを読むことができます

于 2013-03-19T10:12:52.897 に答える