Java Hashmap值为Array

Edd*_*dyR 2 java arrays hashmap

我有以下代码,它将一些数组添加到一个hashmap,但后来我想访问这些数组以便稍后对它们进行一些处理.我已经做到这一点,但无法想出其余的工作......

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;

    public static void main(String[] args) {

        String[][] layer1 = {
            {"to1", "TYPE1", "start"}, 
            {"to2", "TYPE1", "start"}
        };

        String[][] layer2 = {
            {"to3", "TYPE2" ,"item1"},
            {"to3", "TYPE2" ,"item2"}
        };

        HashMap<String,Object> hashMap = new HashMap<String,Object>();
        hashMap.put("layer1", layer1);
        hashMap.put("layer2", layer2);

        Iterator<Entry<String, Object>> iterator = hashMap.entrySet().iterator();
        while(iterator.hasNext()){
            hashMap.values().toArray();
            for (???) {
                // lets print array here for example
            }
        }        

    }
Run Code Online (Sandbox Code Playgroud)

Ste*_* B. 6

闻起来像家庭作业,但一些建议 -

  • 没有理由让你的Hashmap成为形式<String,Object>- 制作它<String, String[][]>,就像你正在存储的那样.

你要迭代两次.您可以 - 遍历地图,键,值或条目.每个项都是迭代器返回值,例如

for (String[][] s:map.values()){
 ...
}
Run Code Online (Sandbox Code Playgroud)
  • hashmap.values.toArray为您提供了所有内容,这与您的迭代器正在做的事情是一样的.

  • 如果你只是遍历内容,那么你并没有真正使用地图,因为你从来没有利用你的价值可以通过密钥获得的事实.