2014-03-24 49 views
0

我需要一些幫助,在ArrayLists中使用compareTo。作爲指導,我給了這一段:在ArrayList中使用compareTo

addOrder(ArrayList words,String newWord) - 此方法以正確的字母順序添加newWord。

提示你可以使用:則x.compareTo(Y)

如果則x.compareTo(y)爲< 0,X附帶在y之前)

addOrder應該然後返回一個字符串此更新的ArrayList。

但即使我研究了很多仍然努力去理解如何將它應用到ArrayLists。這是我的代碼,我想使用compareTo方法:

import java.util.ArrayList; 
import java.util.ArrayList; 
import java.util.List; 

class StringList { 
    public static void main(String [] args) 
    { 
     ArrayList< String> list = new ArrayList< String>(); 
     list.add("Goldsmiths"); 
     list.add("College"); 
     list.add("London"); 
     list.add("Manchester"); 
     list.add("London"); 
     list.add("York"); 
     System.out.println("These are your words:"); 
     System.out.println(list); 
     System.out.println("This is the size of the array:"); 
     System.out.println(lengthArray(list)); 
     System.out.println("The length of all strings is:"); 
     System.out.println(totalLengthArray(list)); 
    } 

    public static int lengthArray(List<String> list) 
    { 
     return list.size(); 
    } 

    public static int totalLengthArray(List<String> list) 
    { 
     int count = 0; 
     for (String s: list) 
     { 
      count += s.length(); 
     } 
     return count; 
    } 
} 

我想比較和排序的是,我已經加入列表中的項目,你可以在我的代碼中看到。

+1

爲什麼不使用'Collections.sort(List list)'? – NeplatnyUdaj

+0

您也可以使用compareTo方法遍歷字符串列表以確定添加新字的列表位置。 –

回答

3

使用Collections.sort(List<T> list, Comparator<T> c);

Collections.sort(yourList,new Comparator<String>() { 
    @Override 
    public int compare(String lhs, String rhs) { 
     return lhs.compareTo(rhs); //or whatever your sorting algorithm 
    } 
}); 
0

的compareTo是String類的方法。 因此,爲了使用它,你必須寫這樣的事:

list.get(i).compareTo(newWord) 

其中i爲您的列表的元素的索引和newWord是刷;

這裏是一個有用的link

,你可以簡單的添加元素,然後用Collections.sort(名單),但因爲我認爲這是學校裏的功課大概你不能,那麼你必須要管理插件如我所示,手動使用compareTo方法。

相關問題