我在编程时遇到一个问题:
我的 class A 中有以下属性:产品名称 产品编号 产品销售量
现在我有 10个 class A的 对象 b[10];
现在我要对每个对象的销售量进行排序.(这个我会)
排好序以后要求按从小到大打印出来(打印三个属性),问题是.怎么样可以让排序后销售量和原来的对应产品名称,编号一起打印出来呢?
我的 class A 中有以下属性:产品名称 产品编号 产品销售量
现在我有 10个 class A的 对象 b[10];
现在我要对每个对象的销售量进行排序.(这个我会)
排好序以后要求按从小到大打印出来(打印三个属性),问题是.怎么样可以让排序后销售量和原来的对应产品名称,编号一起打印出来呢?
楼主【tommake】截止到2008-06-25 19:58:23的历史汇总数据(不包括此帖):
发帖数:1 发帖分:20
结贴数:0 结贴分:0
未结数:1 未结分:20
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
对象中的其他属性也会自动排序?
Arrays.sort(b,comparator);comparator是一个实现了Comparator接口的类的实例这个类大概是这样的:class MyComparator implements Comparator<A> { public int compare(A a1, A a2) {
return a1.sell_number - a2.sell_number;
}
}MyComparator comparator=new MyComparator ();
Arrays.sort(b,comparator);
建立三个数组分别对应上面的关系
对销售量进行排序 同时记录数组id
到时候对应数组id取值就可以了
倒是有个这样的:
public static void sort(Object[] a)根据元素的自然顺序对指定对象数组按升序进行排序。数组中的所有元素都必须实现 Comparable 接口。此外,数组中的所有元素都必须是可相互比较的(也就是说,对于数组中的任何 e1 和 e2 元素而言,e1.compareTo(e2) 不得抛出 ClassCastException)。
保证此排序是稳定的:不会因调用 sort 方法而对相等的元素进行重新排序。该排序算法是一个经过修改的合并排序算法(其中,如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并)。此算法提供可保证的 n*log(n) 性能。
参数:
a - 要排序的数组
抛出:
ClassCastException - 如果数组包含不可相互比较的 的元素(例如,字符串和整数)。
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/Arrays.html#sort(T[],%20java.util.Comparator)
java.util.Comparator<T>
没有吗??