我正在开发一个程序,我必须计算文件中食物的频率,以便按降序对它们进行排序.
例如:如果我的文件有(披萨,冰淇淋,意大利面,披萨)
我希望我的程序打印类似于此的东西:
1 ice_cream 1意大利面2披萨
我正在使用冒泡排序算法,但似乎我遗漏了这个算法的工作原理.任何帮助将不胜感激!
在类Listabc中,我有两个局部变量和一个名为"compareTo"的方法.
class Listabc {
int count = 1;
String item;
int compareTo(Listabc listabc) {
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的主要方法中,我有一个冒泡排序算法,按降序排序食品
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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
你的compareTo方法实现被打破了.你需要通过应用真正的比较来改变它:
int compareTo(Listabc listabc) {
return 0; //this means every element is "similar" to another
}
Run Code Online (Sandbox Code Playgroud)
这是一个关于按item字段比较元素的示例:
int compareTo(Listabc listabc) {
return this.item.compareTo(listabc.item);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |