数字使用直接比较大小来排序,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代表小于。然后根据返回值来进行排序。
Java之ArrayList自定义排序,通过实现comparator比较器接口
两种排序方式: 1.实体类实现Comparable接口,重写compareTo(T o)方法,在其中定义排序规则,那么就可以直接调用Collections.sort()来排序对象数组 2.在调用方法的 ...
JAVA对ArrayList排序
ava如何对ArrayList中对象按照该对象某属性排序 增加排序功能,打印时:输出学生对象的时候,需要先按照年龄排序,如果年龄相同,则按照姓名排序,如果姓名也相同,则按照学号排序. Code hig ...
java@ 利用ArrayList实现dijkstra算法以及topological 排序算法(java.util.ArrayList)
package dataStructure; import java.util.ArrayList; import java.util.LinkedList; import java.util.Que ...
java中Collections.sort排序详解
Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f, ...
java SE 常用的排序算法
java程序员会用到的经典排序算法实现 常用的排序算法(以下代码包含的)有以下五类: A.插入排序(直接插入排序.希尔排序) B.交换排序(冒泡排序.快速排序) C.选择排序(直接选择排序.堆排序) ...
Java list的用法排序及遍历