恳请各位
在java中,如何把一个数组放到集合中去。如
String[] aServerId=null;
Vector v=new Vector();
String devId = request.getParameter("dev_Id")==null?"":request.getParameter("dev_Id");
 aServerId=serverId.split(",");
v.add(aServerId)?怎么实现这一步.非常感谢
能否尽快的给我答复。谢谢

解决方案 »

  1.   

    public class Test {
    public static void main(String[] args) {
    String[] aa = new String[]{"1","2","3","4","5"};

    Vector v = new Vector();

    v.add(aa);

    String [] bb = null;

    for (int i=0; i<v.size(); i++) {
    bb = (String[])v.get(i);
    }

    for (int i=0; i<bb.length; i++) {
    System.out.println(bb[i]);
    }
    }
    }
      

  2.   

    v.addAll(Arrays.asList(aServerId));
    or
    for (String s : aServerId) {
        v.add(s);
    }
      

  3.   

    Vector v = new Vector();
    Object[] o = new Object[]{0,1,2,3,4,5};
    for(Object t : o){
    v.add(t);
    }而且vector也已经不推荐使用了
      

  4.   

    for (String s : aServerId) {
        v.add(s);
    }
      

  5.   

    Collections.addAll(list,array);
    第一个参数:collection子类
    第二个参数:任何类型数组
      

  6.   

    v.add(aServerId)?怎么实现这一步.非常感谢
    变为Collections.addAll(v,aServerId);
      

  7.   

    还是行不通呀。
     Vector v=new Vector();
         String[] aServerId=null;
                         devId = request.getParameter("dev_Id")==null?"":request.getParameter("dev_Id");
                aServerId=devId.split(",");
                System.out.println(aServerId+"aaaaaaaa");
                      Collections.addAll(v,aServerId);                    try{
                resultInfo = allotDev.allotRvsDev(v,rvsId);
               out.print("200%$%删除成功\r");
            }catch(ProcessingErrorException e ){
                out.print("<script language=\"javascript\">alert('"+e.getMessage()+"');</script>");
            }catch(Exception e){
                e.printStackTrace();
              out.print("fail");
            }
    出错呀!
    java.lang.ClassCastException: java.lang.String各位能不能帮我解决一下呀!非常感激。现在我挺急的呀!恳请各位了。
      

  8.   

    这个类型转换异常,你的vector里面放的是Object对象的,取得时候要转成String才行
    for(Iterator it=v.iterator();it.hasNext();){
    String t=(String)it.next();
    System.out.println(t);
    }把你的这个 allotDev.allotRvsDev(v,rvsId)方法贴出来
      

  9.   

    这只是其中的一个删除方法。我把增加删除修改都连在一起了else if("DELETE".equals(devInfo.getChangeType())){  //删除设备
                    
                     stmtInsHis.setString(1, rvsId);
                     stmtInsHis.setString(2, rvsId);
                     stmtInsHis.setString(3, "DEL");
                     stmtInsHis.setString(4, devInfo.getDevId());
                     stmtInsHis.addBatch();
                    
                     //if(!"".equals(recId)){
                         stmtInsHis1.setString(1, rvsId);
                        stmtInsHis1.setString(2, devInfo.getDevId());
                        stmtInsHis1.addBatch();
                        //}
                        
                        stmtDel1.setString(1, rvsId);
                        stmtDel1.setString(2, devInfo.getDevId());
                        stmtDel1.addBatch();
                        
                     iDel ++;
                     }
                    }
                }
                
                //删除流媒体与头端设备的关联信息
                for(int i=0;i<vt.size();i++){
                 devInfo = (RvsDevInfo)vt.get(i); 
                  System.out.println(devInfo.getChangeType()+"abcabc");
                 if("DELETE".equals(devInfo.getChangeType())){
                
                 stmtDel.setString(1, rvsId);
             stmtDel.setString(2, devInfo.getDevId());
             System.out.println(rvsId+"--DEL----"+devInfo.getDevId());
             stmtDel.addBatch();
                 }
                }
                int[] numA = stmt.executeBatch();
                
                System.out.println("changed num----"+numA.length);
                // 下面2行是删除头端设备与录像服务器的关联   还有版本变化
                stmtInsHis.executeBatch();
                stmtInsHis1.executeBatch();
                
                int[] numD = stmtDel1.executeBatch();
                //如果头端设备与录像服务器有关联  则更新录像服务器与头端设备关联的版本
                if(numD.length!=0){
             stmtInsVer = db.getStatement(sqlInsVer1.toString());
             stmtInsVer.setString(1, rvsId);
                 stmtInsVer.executeUpdate();
             }
                
                numD = stmtDel.executeBatch();
                System.out.println("delete num----"+numD.length);
                
                db.commit();
            }catch(ProcessingErrorException e){
                db.rollback();
                e.printStackTrace();
                throw new ProcessingErrorException(e.getMessage());
            }catch(Exception e){
                db.rollback();
                e.printStackTrace();
                if(e.getLocalizedMessage().indexOf("for key 'PRIMARY'")>0){
                    throw new ProcessingErrorException("有重复的数据,请确认");
                }else{
                    throw new Exception(e);
                }
            }finally{
                stmt.close();
                stmtDel.close();
                stmtDel1.close();
                stmtInsHis.close();
                stmtInsHis1.close();
                stmtInsVer.close();
                db.closeConn();
            }
            return rsInfo;
        }
      

  10.   

    devInfo = (RvsDevInfo)vt.get(i);  
    LZ的代码不全,这里的vt是allotDev.allotRvsDev(v,rvsId);传进来的v吗?如果是的话就有问题了。
    你的vt里存的是字符串,这里要强行转换为RvsDevInfo类型,所以出异常了
      

  11.   


    应该是这样的,你vector里放的是字符串