当前位置: 首页 > 知识库问答 >
问题:

将哈希映射的整数值提取到整数数组[duplicate]

蒋波光
2023-03-14

预期的输出是值的排序数组{3,2,1}

import java.util.*;

public class test {
  public static void main(String [] args) {
    Integer[] number = {1, 2, 3, 3, 1, 1};
    HashMap<Integer, Integer> dist = new HashMap<>();
    Integer count;
    for (Integer i : number) {
      count = 1;
      if (dist.containsKey(i))
        count += dist.get(i);
      dist.put(i, count);
    }
    // Program fails below, *Object[] cannot be converted to Integer[]*. 
    Integer[] distArr = dist.values().toArray(); // Works if I replace Integer with Object
    distArr.sort(); // This fails on Object[]
    // ...
  }
}

共有1个答案

司空鸣
2023-03-14
Integer[] distArr = dist.values().toArray(Integer[]::new)
Integer[] distArr = dist.values().toArray(new Integer[dist.values().size()])
Integer[] distArr = dist.values().toArray(new Integer[0])
 类似资料:
  • 我正试图让我的头脑围绕着一个哈姆特的细节。我会用Java自己实现一个,只是为了理解。我熟悉尝试,我想我得到了HAMT的主要概念。 基本上, 两种类型的节点: null null 我不太明白的部分是碰撞检测和缓解。在链接的论文中,他暗示了这一点: 然后将现有键插入到新的子哈希表中,并添加新键。每使用5个以上的散列比特,冲突的概率就减少1/32倍。偶尔,可能会消耗整个32位哈希,必须计算一个新的哈希来

  • 问题内容: 基本类型(例如int)的哈希码是什么? 例如,假设num是一个整数。 问题答案: 对于一个最自然的选择是使用本身。一个更好的问题是,用什么的的,因为它不适合的尺度的哈希码。您的最佳解决方案以及所有相关问题将是有效的Java。

  • 所以,我有一个带有数组的哈希,就像这样: 我想将它们合并到一个哈希数组中,组合相应的元素。 结果应该是这样的: 知道如何有效地做到这一点吗? 请注意,真实世界的使用场景可能包含数量可变的散列键。

  • 我想获取一个Javascript对象并将其转换为哈希数组。 以下操作仅获取对象的一个元素并将其转换为数组: 返回: 但是,当我试图创建散列元素来组成数组时,出现了一个错误: 返回: 我做错了什么?

  • 问题内容: 问题: 给定一个字符串数据数组 我想要一个返回索引数据集的函数 和一个查询表 这样 是真的。请注意,和都可以进行排列,以使上述内容成立并且很好(即,的顺序不必等于中的首次出现的顺序)。 解决方法: 我目前有以下慢速解决方案 有更快的方法吗?我觉得我没有在这里充分利用numpy的潜力。 问题答案: 您可以使用以下参数: 如果愿意,可以从以下两个数组重建原始数组: 如果使用熊猫,将实现相同

  • 我希望获取与已知固定整数关联的线程id,而不是获取任意id值。 例如: 我在运行上述代码时出错: 测验cpp:14:28:错误:二进制表达式('basic_ostream'的操作数无效