我们在用淘宝购物时,需要对物品进行筛选,首先按照销售量从高到低的顺序排序,紧接着在销售量排序的基础上,继续按照价格从高到低的顺序排序,然后继续按照某种属性排序…我们采用Java来实现多个属性的自定义排序。
我们以箱子装载物品为例,每个物品有编号、重量、体积、价格四个属性,具体实现见代码。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class Item {
public int no;//物品编号
public int weight;//物品重量
public int volum;//物品体积
public int value;//物品价值
public Item() {
super();
}
public Item(int no, int weight, int volum, int value) {
super();
this.no = no;
this.weight = weight;
this.volum = volum;
this.value = value;
}
/**
*
* @param 对ArrayList中的物品按照arOrders给定的要排序的列进行排序
* @return 返回一个二维数组
*/
public int[][] sortIntArray(ArrayList<Item> items, final int[] arOrders){
items.size();
int[][] arObjects=new int[items.size()][4];
for(int i=0;i<items.size();i++) {
arObjects[i][0]=items.get(i).no;
arObjects[i][1]=items.get(i).