Java 按数组排序

Java 按数组排序,java,arrays,sorting,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) {

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

我的代码是这样的:

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)
      {
public void sort()
{
布尔值=真;
int i=0;
字符串温度;
while(找到)
{
发现=错误;
对于(i=0;i=0)
{

我已经做了这么多,但仍然不确定如何对它们进行排序。

使用内置方法如何?效果很好。

试试看

Arrays.sort(cars);
如果汽车是非标准类型,则编写自己的
比较器
(命名为
comp
),并执行以下操作:

比较器
接口的文档

更新
或者,正如Polywhill先生在下面所说的,只需将
Compariable
接口实现到汽车类别。

您已经初始化了温度,只需将汽车[i]移动到温度,然后将汽车[i+1]移动到汽车[i],然后将温度移动到汽车[i+1],然后found=true以离开循环将其转换为代码。

您希望以何种方式对这些数据进行排序?我假设您希望手动执行此操作?如果不希望,请使用上面提到的Java内置Arrays.sort()方法。

以下是以下内容的完整实现:


public static您为什么不使用sort()函数?@Mr.polywhill谢谢,我修复了我的帖子。
Arrays.sort(cars, comp);
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);
}