【问题标题】:HashMap returns null when being assigned String[] [duplicate]分配String []时,HashMap返回null [重复]
【发布时间】:2020-11-05 08:48:08
【问题描述】:

我有一个列表,我正在尝试在 for 或循环中填充一个 HashMap

HashMap<String, String> h = new HashMap<String, String>();

for(String a : tempFindings) //tempFindings is a List<String>
{
    String[] parts = a.split("\\.");
    String part1 = parts[0]; 
    String part2 = parts[1];
    h.put(part2, part1);
}

在每个循环中,它都会重写 HashMap 中的值,但我希望我的所有列表都在其中。我该怎么做?

已编辑:

HashMap<String[], String[]> h = new HashMap<String[], String[]>();
                    String[] part2 = new String[100];
                    String[] part1 = new String[100];
                    int n = 0;
                    for(String a : tempFindings)
                    {
                        String[] parts = a.split("\\.");
                        part1[n] = parts[0]; 
                        part2[n] = parts[1];
                        n++;
                        
                    }
                    h.put(part2, part1);

我尝试使用 String[],但是当我分配 String[] 值时,循环,key 和 alue 为 null 有什么问题吗?

【问题讨论】:

  • 使用HashMap&lt;String, List&lt;String&gt;&gt;? putIfAbsent 有助于编写一个简单的代码

标签: java hashmap hashtable


【解决方案1】:

hashMap 不允许重复键。因此,如果您的 part2 字符串重复,则 hashMap 将用新值覆盖第一个值。为了阻止这种情况,您可以创建一个 hashMap 然后将所有不同的值添加到一个数组中,然后再将该数组添加到 hashMap 中。

【讨论】:

  • 感谢您的建议。我做了,我写了我的修改,因为“编辑”是我的帖子。但仍然无法正常工作
  • 你现在得到了什么结果?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2018-03-25
  • 2018-12-25
  • 1970-01-01
相关资源
最近更新 更多