您的位置:首页 > 编程语言 > Java开发

Java对ArrayList进行排序

2016-06-05 16:58 330 查看
数字使用直接比较大小来排序,String的话,使用compare()方法进行排序。

测试代码:

1.对字符串对象排序

@Test
public void test17() throws Exception {
List< String > stringList = new ArrayList<>();
stringList.add("haha");
stringList.add("123");
stringList.add("wq");
stringList.add("d");
stringList.add("rt");
stringList.add("uuk");
System.out.println("排序前:" + stringList);
Collections.sort(stringList, new Comparator< String >() {
@Override
public int compare(String lhs, String rhs) {
System.out.println("排序字符串:" + lhs + "," + rhs);

int i = lhs.compareTo(rhs);
System.out.println("排序结果" + i);
if ( i > 0 ) {
return 1;
} else {
return -1;
}
}
});
System.out.println("排序后:" + stringList);
}


打印的日志:

排序前:[haha, 123, wq, d, rt, uuk]
排序字符串:123,haha
排序结果-55
排序字符串:wq,123
排序结果70
排序字符串:wq,haha
排序结果15
排序字符串:d,haha
排序结果-4
排序字符串:d,123
排序结果51
排序字符串:rt,haha
排序结果10
排序字符串:rt,wq
排序结果-5
排序字符串:uuk,haha
排序结果13
排序字符串:uuk,wq
排序结果-2
排序字符串:uuk,rt
排序结果3
排序后:[123, d, haha, rt, uuk, wq]


2.对数字进行排序

@Test
public void test18() throws Exception {
List< Integer > stringList = new ArrayList<>();
stringList.add(123);
stringList.add(32);
stringList.add(0);
stringList.add(-4);
stringList.add(5);
stringList.add(123131);
System.out.println("排序前:" + stringList);
Collections.sort(stringList, new Comparator< Integer >() {
@Override
public int compare(Integer lhs, Integer rhs) {
if ( lhs > rhs ) {
return 1;
} else {
return -1;
}
}
});
System.out.println("排序后:" + stringList);
}


打印日志:

排序前:[123, 32, 0, -4, 5, 123131]
排序后:[-4, 0, 5, 32, 123, 123131]


在实现Comparator接口的compare()方法的时候,return 1代表大于,return -1代表小于。然后根据返回值来进行排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: