按数组排序

时间:2013-11-27 20:53:41

标签: java arrays sorting

当我尝试排序时,我的方法存在问题:

以下是我的代码:

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)
      {

我得到了这么远,但仍然不确定如何对它们进行排序?

5 个答案:

答案 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上使用调试器。它将允许您查看程序如何逐行运行,以及数据如何更改。