1、集合sort排序
List<Integer> array =new ArrayList<>() ;
array.add(4);
array.add(6);
array.add(7);
array.add(9);
//倒叙
array.sort((o1,o2)->{
return String.valueOf(o2).compareTo(o1.toString());
//倒序:[9,7,6,4]
//正序
array.sort((o1,o2)->{
return String.valueOf(o1).compareTo(o2.toString());
//正序:[4,6,7,9]
2、指定集合中某个数组在最后或是第一位/不考虑其他数据顺序
使用sort排序
//无序集合
Set<String> array =new HashSet<>() ;
array.add("7");
array.add("最前的数据");
array.add("6");
array.add("4");
array.add("最后的数据");
array.add("9");
System.out.println(array);
//实现将集合数组放在最后一位
List<String> collect1 = array.stream().sorted((x1, x2) -> {
if (x1.equals("最后的数据")) {
return 1;
}else if(x2.equals("最后的数据")){
return -1;
}
return 0;
}).collect(Collectors.toList());
System.out.println(collect1);
///[最前的数据, 4, 6, 7, 9, 最后的数据]
//实现将集合数组放在最前一位
List<String> collect2 = array.stream().sorted((x1, x2) -> {
if (x1.equals("最前的数据")) {
return -1;
}
return 1;
}).collect(Collectors.toList());
System.out.println(collect2);
//[最前的数据, 最后的数据, 4, 6, 7, 9]
注:接受时需要用List有序的集合进行接收
当返回返回值是-1 时会将数据往前移动,返回1时数据将会往后移动,返回0时数据将不会动
3、指定集合中某个数组在最后或是第一位,并且考虑其他数据顺序
思路:
1,两个排序
先将集合倒叙通过
array.sort((o1,o2)->{
return String.valueOf(o2).compareTo(o1.toString());
2、然后用判断将某数据拍到第一位
List<String> collect2 = array.stream().sorted((x1, x2) -> {
if (x1.equals("最前的数据")) {
return -1;
}
return 1;
}).collect(Collectors.toList());
总结:可以写两个排序,先到序,在把某一个值放到指定位置。