Java - 对 ArrayList 进行排序

标签 java sorting

我正在开发一个程序,我必须计算文件中食物项的频率,以便按降序对它们进行排序。

例如:如果我的文件有(pizza、ice_cream、pasta、pizza)

我希望我的程序打印类似这样的内容:

1 个冰淇淋 1 份意大利面 2个披萨

我正在使用冒泡排序算法,但似乎我缺少一些使该算法发挥作用的东西。任何帮助将不胜感激!

在 Listabc 类中,我有两个局部变量和一个名为“compareTo”的方法。

class Listabc {

     int count = 1;
     String item;


     int compareTo(Listabc listabc) {
        return 0;
     }

}

在我的主要方法中,我有一个冒泡排序算法来按降序对食物进行排序

public class MainMethod {

   public static void main(String[] args) throws FileNotFoundException {

       Scanner input = new Scanner(new BufferedReader(new FileReader("file.txt")));

       List<Listabc> lists = new ArrayList<Listabc>();

       for (int a = 0; a < lists.size() - 1; ++a) {
           for (int b = a + 1; b < lists.size(); b++) {
               if ((lists.get(b)).compareTo(lists.get(a)) > 0) {
                   Listabc temp = lists.get(a);
                   lists.set(a, lists.get(b));
                   lists.set(b, temp);
               }
           }
           System.out.println(lists.get(a));
       }

     }
 }

最佳答案

您的 compareTo 方法的实现已损坏。您需要通过应用实际比较来更改它:

int compareTo(Listabc listabc) {
    return 0; //this means every element is "similar" to another
}

以下是通过 item 字段比较元素的示例:

int compareTo(Listabc listabc) {
    return this.item.compareTo(listabc.item);
}

关于Java - 对 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23536439/

相关文章:

ios - 根据与 swift 中的键关联的元组的值对字典键进行排序

php - 自然排序关联数组?

java - 任务 ':app:mergeDebugResources' 执行失败。错误: invalid dimen

java - 如何转换不互相继承的对象?

java - 安卓测试: Checking the LeftDrawable image is correct

xcode - 无法使用排序函数 swift 找到重载

python - 如何使用 Python 获取字母数字列表中的最高值?

javascript - tablesorter 插件,我无法使其工作

java - 我如何用枚举中每种环境类型的值列表来表示键?

java - 尽管循环在数组长度范围内,但仍出现越界异常