2010-09-14 97 views
0

我想排序我的ArrayList,但是當我檢查我所謂的排序數組中的第一個項目,這是不正確的。我不知道爲什麼?我錯過了什麼?排序ArrayList無法正常工作

這裏是我的比較:

package org.stocktwits.helper; 

import java.util.Comparator; 

import org.stocktwits.model.Quote; 

public class NameComparator implements Comparator<Quote> 
{ 

    public int compare(Quote o1, Quote o2) { 
     return o1.getName().compareToIgnoreCase(o2.getName()); 
    } 
} 

這是我如何執行實際的排序:

Collections.sort(quotes, new NameComparator()); 

這裏是我的測試數據

quotes = ["Yahoo", "Microsoft", "Apple"] 

排序後,我希望它是:

quotes = ["Apple", "Microsoft", "Yahoo"]` 

然而,當我拉出來的第一個項目排序後,我得到:"Yahoo"

+3

樣本輸入和輸出數據也會有幫助。 – 2010-09-14 04:53:09

+0

你可以提到輸入和輸出(只有第一個元素被錯誤放置或其他)?另外,如果你刪除了不必要的代碼,它會有所幫助。 – 2010-09-14 04:54:51

+0

(對於這個問題,差不多所有的引用代碼都是不必要的。) – 2010-09-14 05:29:48

回答

4

你的代碼工作。它一定在別的地方。
Code on ideone

+0

downvote的任何理由? – 2010-09-14 06:21:56

+0

+1來補償downvote – whiskeysierra 2010-09-14 07:18:06

1

類似的版本適用於我的罰款:

 class NameComparator implements Comparator<String> 
    { 

     public int compare(String o1, String o2) { 
      return o1.compareToIgnoreCase(o2); 
     } 
    } 

    ArrayList<String> s = new ArrayList<String>(3); 
    s.add("Yahoo"); 
    s.add("Microsoft"); 
    s.add("Apple"); 

    Collections.sort(s, new NameComparator()); 
    System.out.println(s); 

時填寫和收集從閱讀你能在這裏拿的代碼,?