类的数组的字母顺序

时间:2013-03-25 22:34:15

标签: java sorting java-7 bubble-sort

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

以下是我正在使用的代码:

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类中定义,它只打印出客户的所有内容。

那么我做错了什么?

1 个答案:

答案 0 :(得分:5)

创建新课程CustomerComparator并使用Customer[]

Arrays.sort(array, new CustomerComparator());进行排序
public class CustomerComparator implements Comparator<Customer> {

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

}