急等!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打包成jar的一个问题 如何用一个树型结构来表示一个文件夹下的文件(夹)结构? 多对一查询问题 两个字符串数组如何比较是否相等? 关于内部类的问题! GIS 是什么意思? 希望共同进步 ,我是菜鸟oicq:18963652 请帮我分析一个垃圾收集的问题 我写的程序有点问题,谁能帮我看看?(点击applet按钮,弹出一个窗口) JAVA发展前景好,还是DELPHI好? 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{
...
}