如何访问哈希映射中字符串数组中的各个值?

发布于 2024-11-09 05:49:02 字数 492 浏览 0 评论 0原文

我的映射声明如下:

Map<Integer, String[]> mapVar = new HashMap<Integer, String[]>();

我通过创建几个字符串数组并将它们与相应的整数放入我的映射中来初始化它。

然后我想迭代地图内字符串数组中的所有元素。 我尝试了这两种可能性,但它们没有给我正确的值:

for(int ii =0; ii < 2; ii++)
  System.out.println(((HashMap<Integer, String[]>)mapVar).values().toArray()[ii].toString());

而且

mapVar.values().toString();

我也知道数组和整数将很好地进入地图,我只是不知道如何访问它们。

谢谢

My declaration of the map is as follows:

Map<Integer, String[]> mapVar = new HashMap<Integer, String[]>();

And I initialized it by making several string arrays and putting them into my map with a corresponding Integer.

I would like to then Iterate through all of the elements in my String array within the map.
I tried these two possiblities but they're not giving me the right values:

for(int ii =0; ii < 2; ii++)
  System.out.println(((HashMap<Integer, String[]>)mapVar).values().toArray()[ii].toString());

and

mapVar.values().toString();

I also know the array and Integer are going into the map fine, I just don't know how to access them.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

零時差 2024-11-16 05:49:02

尝试

for (String[] value : mapvar.values()) {
   System.out.println(Arrays.toString(value));
}

Try

for (String[] value : mapvar.values()) {
   System.out.println(Arrays.toString(value));
}
め七分饶幸 2024-11-16 05:49:02
for (String[] strings : mapVar.values()) {
  for (String str : strings) {
     System.out.println(str);
  }
}

这将打印 Map 中所有数组中的所有 Strings

for (String[] strings : mapVar.values()) {
  for (String str : strings) {
     System.out.println(str);
  }
}

That will print all of the Strings in all of the arrays in the Map.

习惯成性 2024-11-16 05:49:02
for (Map.Entry<Integer, String[]> entry : mapVar.entrySet()) {
   for (String s : entry.getValue()) {
      // do whatever
   }
}
for (Map.Entry<Integer, String[]> entry : mapVar.entrySet()) {
   for (String s : entry.getValue()) {
      // do whatever
   }
}
泅渡 2024-11-16 05:49:02

如果您希望能够将地图中的所有 String 值作为一个单元进行访问,而不是处理中间数组,我建议使用 番石榴 Multimap

ListMultimap<Integer, String> multimap = ArrayListMultimap.create();
// put stuff in the multimap
for (String string : multimap.values()) { ... } // all strings in the multimap

当然,您还可以访问与特定键关联的 String 列表:

List<String> valuesFor1 = multimap.get(1);

If you want to be able to access all the String values in the map as one unit rather than dealing with the intermediate arrays, I'd suggest using a Guava Multimap:

ListMultimap<Integer, String> multimap = ArrayListMultimap.create();
// put stuff in the multimap
for (String string : multimap.values()) { ... } // all strings in the multimap

Of course you can also access the list of Strings associated with a particular key:

List<String> valuesFor1 = multimap.get(1);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文