我想实现下面的这个功能,根据用户数的多少,定义多少个动态数组,用来将动态数据和用户ID相对应,
然后用hashmap.put(用户id,对应数组) ,就是根据用户ID来对相应的数组进行操作。
例:有3个用户 'sa','aa','bb',代码自动根据这3个用户,来动态定义3个数组 
ArrayList arr1 = new ArrayList()
ArrayList arr2 = new ArrayList()
ArrayList arr3 = new ArrayList()
然后 hashmap('sa',arr1)
    hashmap('aa',arr2)
    hashmap('bb',arr3)在下面的代码中根据相应的用户id来对相应的数组进行操作,请问大家这个功能能不能实现?

解决方案 »

  1.   

    我倒是觉得没有必要这么麻烦, 你倒是可以参照HttpServletRequest, HttpServletResponse, ServletContext的setAttribute()来做.
    来一个用户向map put一个信息.
      

  2.   

    因为我这个在做WEB的开单页面,存在一个问题,如果有多个用户同时操作,这个servlet的全局变量 arr数据会变的很乱。。我就是想根据用户,来对相应的数组进行操作,保证多用户同时操作,数据不会混在一个数组里。。
      

  3.   


    /*
    ArrayList arr1 = new ArrayList()
    ArrayList arr2 = new ArrayList() 
    ArrayList arr3 = new ArrayList() 
    然后 hashmap('sa',arr1) 
        hashmap('aa',arr2) 
        hashmap('bb',arr3)
    */
    // 这样可以啊只要对每个所要存放用户数据的集合进行初始化然后统一保存到影射里就OK了。
    // 比如:
    ArrayList arr1 = new ArrayList();
    arr1.add(name); // 姓名
    arr2.add(gender); // 性别
    // ..等等其他数据
    // 然后再分别保存其他用户的数据 arr2、arr3、arr4...
    // 最后初始化hashmap影射关系数据就保存好了。
    hashmap.put("arr1的Id", arr1);
    hashmap.put("arr2的Id", arr2);
    hashmap.put("arr3的Id", arr3);
    // ...
    // 之后就可以随时取值了。如下:
    Object obj = hashmap.get("用户的Id");
    // 把取出来的obj对象转换为ArrayList类型就可以取出这个用户的数据了。
    if (obj instanceof ArrayList){
       ArrayList arr = (ArrayList)obj;
       // 输出用户数据
       for(int i = 0;i < arr.size();i ++){
          System.out.print(arr.get(i) + "\\t");
       }
       System.out.println();
    }
      

  4.   

    不好意思
    arr1写成 arr2.add(gender); // 性别了, 你改一下吧!其他用户同理:ArrayList arr2 = new ArrayList();
    arr2.add("arr2的name");
    arr2.add("arr2的gender");
    // ...
    ArrayList arr3 = new ArrayList();
    arr3.add("arr3的name");
    arr3.add("arr3的gender");
    // ...
    ArrayList arr4 = new ArrayList();
    arr4.add("arr4的name");
    arr4.add("arr4的gender");
    // ...