Object key = null;
String[] str = null;
int i = 0;
Map<String, List<String>> map = mu.sort();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
key = iter.next();
str[i] = key.toString().substring(0,key.toString().length());//这里异常
i++;
} key不是空值,可以打印出来,但是我这样写一直都报空指针异常。轻高手指点一下怎样才能放到数组中!

解决方案 »

  1.   

    String[] str = null;空啊。
      

  2.   

    可以先用List保存再转为String[];
    查API
      

  3.   

    String[] str = new String[map.size()];
      

  4.   

    或者:String[] str = null;
    str = new String[map.keySet().size()];
      

  5.   


    String[] str = new String[map.size()];
      

  6.   

    str只初始化为null,但是没有分配空间。然后,在while里面直接用下标引用了。所以造成空指向异常
      

  7.   

    String[] str = new String[map.size()];这样可以,但是我记得用for的话可以在外面定义NULL啊 ! 迭代不行么??我是个新手。。
      

  8.   

    for循环中这样可以直接赋值的吧???
      

  9.   


    是str数组为空,不是key为空。
      

  10.   


    外面都已经为空了,都没有为str安排内存地址,怎么去存放它里面的东西呢?