我在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;
}
}
我想比较和整理我添加的列表项,您可以在我的代码中看到它。
答案 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>