import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
public class test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Collections.addAll(list, "ss");
System.out.println("初始list:" + list);
List<String> list2 = new ArrayList<String>();
Collections.addAll(list2, "zz","aa");
System.out.println("初始list2:" + list2);
list.addAll(list2);
System.out.println("list.addAll(list2) 后的list :" +list) ;
Collections.sort(list);
System.out.println("Collections.sort(list) 排序后的list :" +list) ;
Collections.shuffle(list);
System.out.println("Collections.shuffle(list) 洗牌打乱后的list :" +list) ;
Collections.shuffle(list, new Random());
System.out.println("Collections.shuffle(list, new Random()) 洗牌打乱后的list :" +list);
List<User> listUser = new ArrayList<User>();
for (int i = 0; i < 3; i++) {
User user = new User();
user.id = (int) (i + Math.random()*10);
user.name = "String" + i;
listUser.add(user);
}
System.out.println("Collections.sort(listUser); 前的listUser :" + listUser);
Collections.sort(listUser);
System.out.println("Collections.sort(listUser); 【User内置id比较器】 后的listUser :" + listUser);
List<User2> listUser2 = new ArrayList<User2>();
for (int i = 0; i < 3; i++) {
User2 user2 = new User2();
user2.id = (int) (i + Math.random()*10);
user2.name = "String" + (int) (i + Math.random()*10);
listUser2.add(user2);
}
System.out.println("Collections.sort(listUser2, new Compare()); 前的listUser2 :" + listUser2);
Collections.sort(listUser2, new Compare());
System.out.println("Collections.sort(listUser2, new Compare()); 【外置name比较器】 后的 listUser2:" + listUser2);
}
}
class User implements Comparable<User>{
String name;
int id;
public int compareTo(User user) {
// TODO Auto-generated method stub
// if (user.id >= this.id) {
// return -1;
// }else {
// return 1;
// }
return this.id - user.id;
}
@Override
public String toString() {
return "User [name=" + name + ", id=" + id + "]";
}
}
class User2{
String name;
int id;
@Override
public String toString() {
return "User [name=" + name + ", id=" + id + "]";
}
}
class Compare implements Comparator<User2>{
public int compare(User2 user2_1, User2 user2_2) {
// TODO Auto-generated method stub
return user2_1.name.compareTo(user2_2.name);
}
}
控制台打印结果
初始list:[ss]
初始list2:[zz, aa]
list.addAll(list2) 后的list :[ss, zz, aa]
Collections.sort(list) 排序后的list :[aa, ss, zz]
Collections.shuffle(list) 洗牌打乱后的list :[ss, aa, zz]
Collections.shuffle(list, new Random()) 洗牌打乱后的list :[ss, aa, zz]
Collections.sort(listUser); 前的listUser :[User [name=String0, id=2], User [name=String1, id=8], User [name=String2, id=7]]
Collections.sort(listUser); 【User内置id比较器】 后的listUser :[User [name=String0, id=2], User [name=String2, id=7], User [name=String1, id=8]]
Collections.sort(listUser2, new Compare()); 前的listUser2 :[User [name=String7, id=3], User [name=String5, id=9], User [name=String4, id=8]]
Collections.sort(listUser2, new Compare()); 【外置name比较器】 后的 listUser2:[User [name=String4, id=8], User [name=String5, id=9], User [name=String7, id=3]]