【题目】寻找身高相近的小朋友
假如班里有A个同学,小明的身高是B,班里每个同学的身高都不一样,将同学与小明身高差的绝对值最小的放在最左边,身高差最大的放在最右边,如果升高差一致,将矮的放在左边。
【例如】
A=10
B=100
同学身高=[95, 96, 97, 98, 99, 101, 102, 103, 104, 105]
输出:
99 101 98 102 97 103 96 104 95 105
代码如下:
import java.util.*;
public class Main1 {
public static void main(String[] args) {
int[] arr = new int[]{95, 96, 97, 98, 99, 101, 102, 103, 104, 105};
int a = 10;
int b = 100;
Map<Integer, Integer> map = new LinkedHashMap<>();
for (int i = 0; i < arr.length; i++) {
map.put(arr[i], Math.abs(arr[i] - b));
}
ArrayList<Map.Entry<Integer, Integer>> entries = new ArrayList<>(map.entrySet());
Collections.sort(entries, new Comparator<Map.Entry<Integer, Integer