我试图实现这一点,但它显示nullPointerException: 它的基本作用是使用lowerKey()方法找到比A [i]低的第一个元素,然后找到上述元素与地图起点之间的距离。
public static void main(String...aks){
Integer arr[] = {12, 1, 2, 3, 0, 11, 4 };
TreeMap<Integer, Integer> treeMap=new TreeMap<Integer, Integer>();
int[] count=new int[arr.length];
for (int i=arr.length-1;i>=0;i--){
treeMap.put(arr[i], 1);
}
for (int j=arr.length-1;j>=0;j--) {
int lowerKey = treeMap.lowerKey(arr[j]);
count[j] = treeMap.headMap(lowerKey).size();
}
for(int elem: count) {
System.out.println(elem);
}
答案 0 :(得分:1)
lowerKey
的文档:
返回严格小于给定键的最大键;如果返回最大键,则返回null 没有这样的钥匙。
这意味着它将返回null
并保留最小的数组,因此在调用headMap
时失败,因为来自headMap
的文档:
NullPointerException-如果toKey为null并且此映射使用自然 排序,或者其比较器不允许使用空键