当我尝试排序时,我的方法存在问题:
以下是我的代码:
public void sort()
{
boolean found=true;
int i = 0;
String temp;
while(found)
{
found = false;
for ( i = 0; i<cars.length-1; i++)
{
if (cars[i].compareToIgnoreCase(cars[i+1])> 0)
{
我得到了这么远,但仍然不确定如何对它们进行排序?
答案 0 :(得分:2)
尝试
Arrays.sort(cars);
如果汽车是非标准类型,那么请编写您自己的Comparator
(让我们将其命名为comp
)并执行:
Arrays.sort(cars, comp);
Comparator
接口的Here's文档。
更新的
或者,正如Polywhirl先生在下面所说的那样,只需实施Comparable
类汽车的接口。
答案 1 :(得分:2)
你已经初始化了temp,只需将cars [i]移动到temp然后将cars [i + 1]移动到cars [i]然后将temp移动到cars [i + 1],然后找到= true以保留循环将此转换为代码
答案 2 :(得分:1)
使用内置方法怎么样? Arrays.sort()
可以正常使用。
答案 3 :(得分:1)
您希望这些数据排序的方式是什么?另外我假设您想手动执行此操作?如果没有,那么使用Java内置的Arrays.sort()方法。
答案 4 :(得分:1)
以下是bubble sort algorithm in Java from Rosetta Code的完整实现:
public static <E extends Comparable<? super E>> void bubbleSort(E[] comparable) {
boolean changed = false;
do {
changed = false;
for (int a = 0; a < comparable.length - 1; a++) {
if (comparable[a].compareTo(comparable[a + 1]) > 0) {
E tmp = comparable[a];
comparable[a] = comparable[a + 1];
comparable[a + 1] = tmp;
changed = true;
}
}
} while (changed);
}
由于你可能正在为一堂课做这件事,你应该试着去了解发生了什么。使用大量System.out.println()
语句来显示程序的运行方式。
您还应该了解如何在IDE上使用调试器。它将允许您查看程序如何逐行运行,以及数据如何更改。