【发布时间】:2013-11-04 02:59:04
【问题描述】:
我编写了一个代码来输入一些节目的名称、日期和时间,并可选择按日期和名称对其进行排序(冒泡排序)。我正在使用 1.4.2(因为我必须这样做)和一个 ArrayList 以及一个简单的类。
我已经盯着这个看了好几个小时,离开又回来了很多次,但不幸的是,它不起作用!知道为什么吗?!这是我的代码:
//method to sort and display info
public static void sortDay(){
for(int i = 0; i < show.size() - 1; i++) {
for(int j = 0; j < show.size() - 1; j++){
showInfo current = (showInfo)show.get(j);
showInfo next = (showInfo)show.get(j+1);
if (current.day.compareTo(next.day) < 0) {
showInfo temp = new showInfo();
temp.name = ((showInfo)show.get(j)).name;
temp.day = ((showInfo)show.get(j)).day;
temp.time = ((showInfo)show.get(j)).time;
((showInfo)show.get(j)).time = ((showInfo)show.get(i)).time;
((showInfo)show.get(j)).day = ((showInfo)show.get(i)).day;
((showInfo)show.get(j)).name = ((showInfo)show.get(i)).name;
((showInfo)show.get(i)).time = temp.time;
((showInfo)show.get(i)).day = temp.day;
((showInfo)show.get(i)).name = temp.name;
}
}
}
System.out.println("Show Information");
for (int i = 0; i < show.size(); i++){
System.out.println("Name: " + ((showInfo)show.get(i)).name);
System.out.println("Day: " + ((showInfo)show.get(i)).day);
System.out.println("Time: " + ((showInfo)show.get(i)).time);
}
}
任何帮助都会很棒!提前致谢!
【问题讨论】:
-
只切换对象而不是重新分配每个字段不是更好吗?
-
@JoshM 怎么样?对不起,我有点菜鸟...
-
为什么所有这些类型转换?每次都需要对它进行类型转换的“显示”是什么? (我的意思是,是的,这显然是一个列表,但列表是什么?)
-
你比较和交换不同的对象,比较 j 和 j + 1 并交换 i 和 j。
-
@pavel.lazar 这就是我老师的例子的样子!我跟着它,现在我不确定。所以我读了一些关于它的东西,但基本上都是一样的。我如何解决它? :(