在ArrayLists中使用compareTo

时间:2014-03-24 13:24:35

标签: java arraylist compareto

我在ArrayLists中使用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;
    }
}

我想比较和整理我添加的列表项,您可以在我的代码中看到它。

2 个答案:

答案 0 :(得分: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
    }
});

答案 1 :(得分:0)

compareTo是String类的方法。 所以,为了使用它,你必须写这样的东西:

list.get(i).compareTo(newWord)

其中i是列表元素的索引,newWord是newWord。

这是一个有用的link

你可以简单地添加一个元素,然后使用Collections.sort(list)但是因为我认为这是一个学校作业可能你不能,所以你必须使用compareTo方法手动管理插入,如我所示。< / p>