java - 类数组的字母顺序

标签 java sorting java-7 bubble-sort

我有一个Customer类数组。我想根据名为 name 的字段按字母顺序重新排序 Customer 类数组中的元素。

这是我正在使用的代码:

int j;
        boolean flag = true;  // will determine when the sort is finished
        Customer temp;
        while ( flag )
        {
            flag = false;
            for ( j = 0;  j < count_customers;  j++ )
            {

                if ( customers[ j ].getName().toString().compareToIgnoreCase( customers[ j + 1 ].getName().toString() ) > 0 )
                {
                    temp = customers[ j ];
                    customers[ j ] = customers[ j+1 ];     // swapping
                    customers[ j+1 ] = temp; 
                    flag = true;
                 } 
             } 
         } 

customers[] 是保存 Customer 的数组 count_customers 表示活跃客户数量。 由于某种原因,当我运行下面的代码时什么也没有返回:

        for(int i=0; i < count_customers; i++)
        {
            tmp_results += customers[ i ].toString() + "\n";
        }

.toString() 是在 Customer 类中定义的,它只是打印出有关客户的所有信息。

那我做错了什么?

最佳答案

创建一个新类 CustomerComparator 并使用 Arrays.sort(array, new CustomerComparator()); 对 Customer[] 进行排序;

public class CustomerComparator implements Comparator<Customer> {

    @Override
    public int compare(Customer c1, Customer c2) {
        return c1.getName().compareTo(c2.getName());
    }

}

关于java - 类数组的字母顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626096/

相关文章:

java - 单击特定单选按钮后打开第二个 Activity ,否则显示消息

java - 端口 8080 已在使用中,并且没有列出使用 8080 的进程

Java:数组大小的插入排序问题

C++ `std::sort` 在不复制的情况下指向二维数据的指针

java - DWR 2 至 DWR 3 cometd

python - 如何使用列名列表对数据框进行排序

macos - 如何在 Mac OSX 上使用 JDK 7?

macos - Mac 上已更新至 JDK7,现在出现 AquaTableUI 异常

java - 使用 Java 7 在 Jersey 上重置连接

java - 实际上是最终的 - 内部类访问