2014-03-24 23 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方法。

相关问题