List泛型数组排序
List泛型排序,很多地方要用到排序,有算法的排序,也有已经组装好的类调用。对数组的,对集合的排序相信大家都不陌生。记录下刚刚花了差不多一个小时才做出来的一个对List<T>的排序,大部分时间都是用在看API上面了,代码不多。下面是代码:
List<Object[]> list=new ArrayList<Object[]>(); Object[] obj1 = new Object[2]; Object[] obj2 = new Object[2]; Object[] obj3 = new Object[2]; obj1[0]=105; obj1[1]="A"; obj2[0]=88; obj2[1]="B"; obj3[0]=199; obj3[1]="C"; list.add(obj1); list.add(obj2); list.add(obj3); System.out.println("排序前:"); for(int i=0;i<list.size();i++) { System.out.println(list.get(i)[1]+"的值是:"+list.get(i)[0]); } ComparableObjects c=new ComparableObjects(); Collections.sort(list,c); System.out.println("排序后:"); for(int j=0;j<list.size();j++) { System.out.println(list.get(j)[1]+"的值是:"+list.get(j)[0]); }
import java.util.Comparator; public class ComparableObjects implements Comparator<Object[]> { /** * 数组里某字段排序 */ public int compare(Object[] o1, Object[] o2) { // TODO Auto-generated method stub Integer a=(Integer) o1[0]; Integer b=(Integer) o2[0]; int flag = a.compareTo(b); return flag; } }
上面实现的是一个JAVA自带的Comparator接口,
api的解释是:比较函数强行对某些对象 collection 进行整体排序。可以将 Comparator 传递给 sort 方法(如Collections.sort),从而允许在排序顺序上实现精确控制。还可以使用 Comparator 来控制某些数据结构(如TreeSet 或 TreeMap)的顺序。
如果大家有时间而且想多了解的话可以去看下api,有什么收获的话也可以在下面评论一起来讨论的。看下结果图:
黑,只是一种颜色。笑,只是一种状态。抛开束缚,做一个真正的你。