【问题标题】:Create an array of HashMaps while specifying HashMap<String, Integer>在指定 HashMap<String, Integer> 时创建一个 HashMaps 数组
【发布时间】:2017-08-27 21:39:39
【问题描述】:

我试图在一个类中创建一个 HashMaps 数组,然后从该数组中检索一个 hashmap 用于计算目的。这是我的代码:

HashMap<String, Integer>[] boardPopulation= (HashMap<String, Integer>[]) new HashMap[populationSize];
    for(int i=0; i < populationSize; i++){
        generateQueens();
        boardPopulation[i] = queenMap;
    }
    for(int i=0; i < populationSize; i++){
        queenMap = boardPopulation[i];
        printBoard();
    }

编译时出现两个问题:

  1. Board.java 使用未经检查或不安全的操作,使用 -Xlint:unchecked 重新编译。
  2. 当我使用“Xlint:unchecked”编译时,我得到了

警告:[unchecked] unchecked cast HashMap[] boardPop.......(与上面代码的第 1 行相同)

必需:HashMap[] 找到:HashMap[]

请帮帮我! :D

理想情况下,我不想在未选中的情况下使用 Xlint,但最终我真的只需要能够从列表中检索 HashMap 并将其分配给queenMap,这样我就可以在类中进行计算。

谢谢

【问题讨论】:

标签: java arrays hashmap unchecked


【解决方案1】:

很抱歉回答了一个稍微不同的问题,但如果数组不是必需的,您是否尝试过使用通用列表:

List<Map<String, Integer>> boardPopulations = new ArrayList<>();
boardPopulations.add(new HashMap<>()); 

【讨论】:

  • 我确实发现了一些非常相似的东西,我认为它正在做我现在需要的事情。代码:> boardPopulation = new ArrayList>(); for(int i=0; i
  • 酷,看起来更好。如果您使用的是 java 7,我认为应该能够做到 List> boardPopulation = new ArrayList(),ArrayList 构造函数的类型应该从 boardPopulation 的声明中推断出来作为 List>
  • 使用 Java 8。我现在有一个新问题。有没有机会我可以请你私聊以了解更多细节?我之所以问,是因为新问题与这个问题的相关性较小,而与理解我正在解决的问题更相关。
  • 来吧,我不知道如何开始,但我想你会的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-26
  • 2015-02-19
  • 2016-06-11
  • 1970-01-01
  • 2016-01-08
  • 1970-01-01
相关资源
最近更新 更多