我自己创建了几个hashMap,然后想把这些map放到vector中,可是只要一添加map到vector中,就会报空指针,也不知道是怎么出来的,我也用上了泛型,哪位大哥大姐知道,给看看问题在哪,下面是代码!
import java.util.HashMap;
import java.util.Vector;public class MapTst { static Vector<HashMap<Integer, String>> vec=null;

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
Vector<String> vecstr=null;
MapTst.initMap();
for(int i=1;i<=9;i++){
String str="";
boolean  rtn = recursiveFind(1,vec,1,str);
if(rtn==true) vecstr.add(str);
}
System.out.println(vecstr.size());
}

static void initMap(){
HashMap<Integer, String> map1 = new HashMap<Integer,String>();
map1.put(1,"dxd");
map1.put(2,"wlp");
map1.put(3,"gj");
map1.put(4,"chenxi");
map1.put(5,"tiananmen");
map1.put(6,"renmin");
map1.put(7,"zuqiu");
map1.put(8,"fengsaka");
map1.put(9,"lanqiu");
//Vector  vec = null;
// vec.add(map1);
vec.add(0,map1);
//vec.addElement(map1);

HashMap<Integer, String> map2 = new HashMap<Integer,String>();
map2.put(1,"gugong");
map2.put(2,"yonghegong");
map2.put(3,"dianmen");
map2.put(4,"xizhimen");
map2.put(5,"jianguomen");
map2.put(6,"chaoyangmen");
map2.put(7,"dongzhimen");
map2.put(8,"qianmen");
map2.put(9,"fuchengmen");
map2.put(10,"deshengmen");

// vec.add(map2);
vec.addElement(map2);
HashMap<Integer, String> map3 = new HashMap<Integer,String>();
map3.put(1,"1");
map3.put(2,"2");
map3.put(3,"3");
map3.put(4,"4");
map3.put(5,"5");
map3.put(6,"6");
map3.put(7,"7");
map3.put(8,"8");
map3.put(9,"9");
map3.put(9,"10");

// vec.add(map3);
vec.addElement(map3);

HashMap<Integer, String> map4 = new HashMap<Integer,String>();
map4.put(1,"a");
map4.put(2,"b");
map4.put(3,"c");
map4.put(4,"d");
map4.put(5,"e");
map4.put(6,"f");
map4.put(7,"g");
map4.put(8,"h");
map4.put(9,"i");
map4.put(9,"j");


HashMap<Integer, String> map5 = new HashMap<Integer,String>();
map5.put(1,"11");
map5.put(2,"22");
map5.put(3,"33");
map5.put(4,"44");
map5.put(5,"55");
map5.put(6,"66");
map5.put(7,"77");
map5.put(8,"88");
map5.put(9,"99");
map5.put(9,"111");

vec.addElement(map4);
vec.addElement(map5);
// vec.add(map4);
// vec.add(map5);
//vec.a
}

static boolean recursiveFind(Integer k, Vector<HashMap<Integer, String>> vec, Integer i,String str){
if(i>vec.size())return false;

if(vec.get(i).containsKey(k))
{
str += k.toString();
recursiveFind(++k,vec,++i,str);
}
else 
{
return false;
}

return true;
}}
我用了add,addElement都不行,不知道为何?  请大家看看,我主要是想用这个东西来实现后面的递归算法,郁闷啊!分开用vector和hashMap都没问题,居然结合着用就报这个怪问题!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【DIAOZUXIN】截止到2008-06-29 14:40:40的历史汇总数据(不包括此帖):
    发帖数:31                 发帖分:428                
    结贴数:14                 结贴分:205                
    未结数:17                 未结分:223                
    结贴率:45.16 %            结分率:47.90 %            
    楼主该结一些帖子了
      

  2.   

    Vector <String> vecstr=null; 我没看到初始化代码啊??还有,
    你是不是该结一些帖子了???