Java的List怎么排序啊?

2025-02-23 06:32:10
推荐回答(4个)
回答1:

用Collections.sort就可以排序,
里面的排序是默认的按自然顺序排列
也就是1,2,3,4这种
参数要求实现了Comparable的数据才能排序,
如果你自己写的类,你就要实现Comparable接口,然后在接口里面自动生成的方法里面
指定排序方法,一般的String Inteneger类都是实现了这个接口的 不用自己操作的。
你可以取看源代码

回答2:

java的集合排序可以这样做:

(1)新建排序规则

package com.test;

import java.util.Comparator;

/**
 * @作者 王建明
 * @创建日期 13-10-18
 * @创建时间 下午9:40
 * @版本号 V 1.0
 */
public class ComparatorNumber implements Comparator {
@Override
public int compare(Object o1, Object o2) {
Number num1 = (Number) o1;
Number num2 = (Number) o2;
if (num1.equals(num2))
return 0;
else if (num1.doubleValue() > num2.doubleValue())
return 1;
else
return -1;
}
}

(2)利用排序规则进行排序

package com.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @作者 王建明
 * @创建日期 13-10-18
 * @创建时间 下午9:37
 * @版本号 V 1.0
 */
public class SortTest {
public static void main(String[] args) {
List a = new ArrayList();
a.add(1);
a.add(6);
a.add(3.0);
a.add(8);
a.add(3.2);
a.add(4);
a.add(6.9);
ComparatorNumber comparatorNumber = new ComparatorNumber();
Collections.sort(a, comparatorNumber);
for (Object o : a) {
System.out.println(o);
}
}
}

结果如下:

1
3.0
3.2
4
6
6.9
8

回答3:

问题在于

double temp =0.0;

你把temp设置成double型,然后

temp =arr.get(l).doubleValue();

所以你把取得的int类型转换成了double类型,最后输出就带上了.0


你仔细看看你的程序,int类型有的排序后没有变,有的变x.0了,凡是加上.0的都是它在排序过程中与double类型的数字进行过交换。

回答4:

先转成数组,在调用Arrays.sort();