一、自定义排序
http://blog.youkuaiyun.com/janronehoo/article/details/8746447
http://www.cnblogs.com/liuyuanyuanGOGO/p/java_collections.html
Collections.sort(station,(a,b)->{
return a.getStationNo() - b.getStationNo();
});
Collections.sort(names, (String a, String b) -> { return b.compareTo(a); });
Java8:Lambda表达式增强版Comparator和排序:
http://www.importnew.com/15259.html
1、数组排序:
String[] players = {"d","a","c","b"};
System.out.print("排序前: ");
for(String s : players){
System.out.print(s.concat(" "));//排序前,players: d a c b
}
// Arrays.sort(players, new Comparator<String>() {
// @Override
// public int compare(String s1, String s2) {
// return (s1.compareTo(s2));
// }
// });
Arrays.sort(players, (String s1, String s2) -> (s1.compareTo(s2)));//jdk1.8
System.out.println();
System.out.print("排序后: ");
for(String s : players){
System.out.print(s.concat(" "));//排序后,players: a b c d
}
2、集合排序:
List<String> players = new ArrayList<>();
players.add("d");
players.add("c");
players.add("a");
players.add("b");
System.out.println("排序前: " + players);//排序前,players: d c a b
// Collections.sort(players, new Comparator<String>() {
// @Override
// public int compare(String s1, String s2) {
// return (s1.compareTo(s2));
// }
// });
Collections.sort(players, (String s1, String s2) -> (s1.compareTo(s2)));//jdk1.8
System.out.println("排序后: " + players);//排序后,players: a b c d
List<String> players = new ArrayList<>();
players.add("4");
players.add("3");
players.add("1");
players.add("2");
System.out.println("排序前: " + players);//排序前,players: d c a b
//Collections.sort(players, new Comparator<String>() {
//@Override
// public int compare(String s1, String s2) {
// return (s1.compareTo(s2));
//}
//});
//Collections.sort(players, (String s1, String s2) -> (s1.compareTo(s2)));//jdk1.8
//Collections.sort(players, (String s1, String s2) -> ( Integer.valueOf(s2) - Integer.valueOf(s1)));//jdk1.8
players.sort((String s1, String s2) -> ( Integer.valueOf(s2) - Integer.valueOf(s1)));//jdk1.8
System.out.println("排序后: " + players);//排序后,players: a b c d
二、数组与List相互转换
1、List转数组:
List<String> players = new ArrayList<>();
players.add("d");
players.add("c");
players.add("a");
players.add("b");
//String[] ss = (String[])players.toArray(new String[0]);
String[] ss = players.toArray(new String[players.size()]);
System.out.print("转换后: ");
for(String s : ss){
System.out.print(s.concat(" "));//转换后,ss: d c a b
}
2、数组转List:
String[] ss = {"d","c","a","b"};
System.out.print("转换前: ");
for(String s : ss){
System.out.print(s.concat(" "));//转换前,ss: d c a b
}
System.out.println();
List<String> players = Arrays.asList(ss);
System.out.println("转换后: " + players);//转换后,players: d c a b