第一个set有30w 第二个set有 30w 如果里边的号码 相同这个号码不插入表将不相同的进行插入 一张表 就是一个这么个程序 我写了 就是每比对出 没法发了 如何遍历

解决方案 »

  1.   

    set1.containsAll(set2) && set2.containsAll(set1)
      

  2.   

    public void addMap(){
    Set newset = null;
    Object[] sp=set.toArray();
    //System.out.println(set.size()+"白名单的里边");

     for(int a=0;a<sp.length; a++){
     //==================================================//
     //比对黑名单数据有就在集合中把它清除 
      Object[] sb=se.toArray();
           for(int i=0;i<sb.length; i++){   
            System.out.println("sss");
            if(sp[a].equals(sb[i])){    
            System.out.println("sss");
            set.remove(sp[a]);
            System.out.println(set.size()+"白名单的里边");
            newset=set;
            break;
            }
           }  
           break;
     }
    if(newset==null){
    newset=set;
    System.out.println(newset.size()+"走几遍");
    }
           //======================================================//
           //现在要插入的得是比对完黑名单的数据要是放在for循环里有多少数据就插入多少变相同的值
           //写个else是执行了不满足就入库但是这个for循环的解决一下 想想
    // System.out.println(newset.size()+"集合");
                    Object[] finalnum=newset.toArray();
                   for(int t=0;t<finalnum.length;t++){
                    System.out.println("插入的for循环");
             try{  
              con.setAutoCommit(false);
               pst=con.prepareStatement("insert into lv_black_phone(blackphone) values(?)");
               System.out.println(finalnum[t]+"------");
               pst.setString(1,(String)finalnum[t]);
               pst.addBatch();
               pst.executeBatch();
               con.commit();
              }catch(SQLException e){
               e.printStackTrace();
              }finally{
               try{
               pst.close();
               con.close();
               }catch(SQLException e){
               e.printStackTrace();
               }
              }
                    
                    }
      }
      

  3.   

    俩个数据比对那太慢了 尤其30w 如果说 数据库 30w 最后一条相等 那么意味着 走了30w遍 所以说 求你们写段程序 我自己都不相信自己写着代码我们经理说放到 map中 可是 我直接放到Set集合里 了 会的 太少了 他说那个 我也不回 所以 求助了程序太慢了
      

  4.   

    存放数据的Set是HashSet?
    可以用contain判断吧,不包含的就放到新的Set中。
      

  5.   

    public void addMap(){
       Object[] sp=set.toArray();
       Set nset=null;
           for(int i=0;i<sp.length; i++){   
            if(se.contains(sp[i])==true){    
            set.remove(sp[i]);
            System.out.println(set.size());
            nset=set;//明明是有为啥不进
            }else{
            //如果没有进这个 的有值插入呀 咋获得 帮看看 改改 谢谢
            System.out.println(set.size()+"else");
            nset=set;
                 try{
                   //Object[] nsp=nset.toArray();
            con.setAutoCommit(false);
            pre=con.prepareStatement("insert into lv_black_phone(blackphone) values(?)");
            pre.setString(1,nset.toString());
            pst.addBatch();
                pst.executeBatch();
                con.commit();