【问题标题】:Using compareTo in ArrayLists在 ArrayLists 中使用 compareTo
【发布时间】:2014-05-01 21:18:41
【问题描述】:

我需要在 ArrayLists 中使用 compareTo 的帮助。作为指导,我得到了这一段:

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

您可以使用的提示:x.compareTo(y)

如果 x.compareTo(y)

addOrder 然后应该返回这个更新的字符串数组列表。

但即使我进行了很多研究,仍然难以理解如何将其应用于 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;
    }
}

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

【问题讨论】:

  • 你为什么不直接使用Collections.sort(List&lt;T&gt; list)
  • 您还可以使用 compareTo 方法循环遍历字符串列表以确定列表的位置以添加新单词。

标签: java arraylist compareto


【解决方案1】:

使用Collections.sort(List&lt;T&gt; list, Comparator&lt;T&gt; c);

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

【讨论】:

    【解决方案2】:

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

    list.get(i).compareTo(newWord)
    

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

    这是一个有用的link

    您可以简单地添加一个元素,然后使用 Collections.sort(list) 但由于我认为这是一项学校作业,您可能不能,因此您必须使用 compareTo 方法手动管理插入,就像我向您展示的那样。

    【讨论】:

      猜你喜欢
      • 2017-02-02
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多