急等!ArrayList怎么从大到小排序 急等!ArrayList怎么从大到小排序 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ArrayList list=new ArrayList(); list.add(new Integer(6)); list.add(new Integer(3)); list.add(new Integer(1)); list.add(new Integer(4)); list.add(new Integer(0)); list.add(new Integer(2)); list.add(new Integer(5)); Collections.sort(list ,new Comparator() { public int compare(Object o1, Object o2) { boolean bigTosmall = true; int i1 = ( (Integer) o1).intValue(); int i2 = ( (Integer) o2).intValue(); if (i1 > i2) { if (bigTosmall) return -1; else return 1; } else { if (bigTosmall) return 1; else return -1; } } }); ArrayList自己不是有sort函数吗? Collections.sort(list,Collections.reverseOrder()); sort 怎么用啊哪位高手写个例子谢谢 如果要用Sort方法的话,要不然List里面的元素实现了Comparable方法,要不然就是指定一个Comparator 排序应该在腰排序的东西里面写 Comparable 方法,不应该到调用 Collections.sort 的时候再另外用一个匿名类实现 compare(). 例子:public class ClassA{ long f1; long f2; public ClassA(long f1,long f2){ this.f1 = f1; this.f2 = f2; } public int compareTo(Object o){ if(o == null){ return 1; } ClassA other = (ClassA)o; //goes here, other is not null if(f1 > other.f1){ return 1; }else if(f1 < other.f1){ return -1; } //goes here, f1 == other.f1 if(f2 > other.f2){ return 1; }else if(f2 < other.f2){ return -1; } //goes here, all equals return 0; } public String toString(){ return "(" + f1 + "," + f2 + ")"; } public static void main(String[] args){ List l = new ArrayList(); l.add(new ClassA(1,1)); l.add(new ClassA(1,2)); l.add(new ClassA(2,1)); l.add(new ClassA(2,2)); System.out.println(l.toString()); //顺序排列 Collections.sort(l); System.out.println(l.toString()); //逆序排列 Collections.sort(l,Collections.reverseOrder()); System.out.println(l.toString()); }} 搞错了,应该写public class ClassA implements Comparable{...} 只要定义一个Comparator接口的实现类,在这里定义如何比较元素的大小,再传给Collections.sort方法即可。很简单 默认是从小到大排序,要用 Collections.sort(list,Collections.reverseOrder()); 做菜单时二级菜单的图标设计 Java基础学中的几个问题,过路的请帮忙看看,谢谢! 带package的编译怎么编? java和SQL连接 jTable单元格相应键盘事件的问题。。 如何让Applet的初始大小自动适应不同客户端的分辨率 关于在其它事件中调用按钮事件处理程序问题 求问题! 有哪位高手能够帮俺看出这个简单打印程序中的错误吗? JSP-Action页面值传递问题For input string "classid" JAVA中SWT的树型结构如何展开? 并于 Vector 的ADD方法的问题
list.add(new Integer(6));
list.add(new Integer(3));
list.add(new Integer(1));
list.add(new Integer(4));
list.add(new Integer(0));
list.add(new Integer(2));
list.add(new Integer(5));
Collections.sort(list ,new Comparator()
{
public int compare(Object o1, Object o2)
{
boolean bigTosmall = true;
int i1 = ( (Integer) o1).intValue();
int i2 = ( (Integer) o2).intValue();
if (i1 > i2)
{
if (bigTosmall)
return -1;
else
return 1;
}
else
{
if (bigTosmall)
return 1;
else
return -1;
}
}
});
哪位高手写个例子
谢谢
例子:
public class ClassA{
long f1;
long f2;
public ClassA(long f1,long f2){
this.f1 = f1;
this.f2 = f2;
} public int compareTo(Object o){
if(o == null){
return 1;
}
ClassA other = (ClassA)o; //goes here, other is not null
if(f1 > other.f1){
return 1;
}else if(f1 < other.f1){
return -1;
} //goes here, f1 == other.f1
if(f2 > other.f2){
return 1;
}else if(f2 < other.f2){
return -1;
} //goes here, all equals
return 0;
} public String toString(){
return "(" + f1 + "," + f2 + ")";
} public static void main(String[] args){
List l = new ArrayList();
l.add(new ClassA(1,1));
l.add(new ClassA(1,2));
l.add(new ClassA(2,1));
l.add(new ClassA(2,2));
System.out.println(l.toString());
//顺序排列
Collections.sort(l);
System.out.println(l.toString()); //逆序排列
Collections.sort(l,Collections.reverseOrder());
System.out.println(l.toString());
}
}
public class ClassA implements Comparable{
...
}