19.按十进制最低位排序
给定一个非空数组(列表),起元素数据类型为整型
请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变
当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位
输入描述
给定一个非空数组(列表),其元素数据类型为32位有符号整数,数组长度为[1,1000]
输出排序后的数组
输入
1,2,5,-21,22,11,55,-101,42,8,7,32
输出
1,-21,11,-101,2,22,42,32,5,55,7,8
查看代码
import java.util.*;
public class Demo19 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[] split = sc.nextLine().split(",");
int len = split.length;
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < len; i++){
list.add(Integer.parseInt(split[i]));
}
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
int d1 = o1 > 0 ? o1 : - o1;
int d2 = o2 > 0 ? o2 : - o2;
int k1 = d1 % 10;
int k2 = d2 % 10;
return k1 - k2;
}
});
StringBuilder sb = new StringBuilder();
for(int i : list){
sb.append(i).append(",");
}
String ans = sb.toString();
System.out.println(ans.substring(0, ans.length() - 1));
}
}