如和比对两个set值是否相等 想请做过的帮写一个 我写了一个总是比对不出来 高分送出 在线等谢谢了 第一个set有30w 第二个set有 30w 如果里边的号码 相同这个号码不插入表将不相同的进行插入 一张表 就是一个这么个程序 我写了 就是每比对出 没法发了 如何遍历 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 set1.containsAll(set2) && set2.containsAll(set1) 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(); } } } } 俩个数据比对那太慢了 尤其30w 如果说 数据库 30w 最后一条相等 那么意味着 走了30w遍 所以说 求你们写段程序 我自己都不相信自己写着代码我们经理说放到 map中 可是 我直接放到Set集合里 了 会的 太少了 他说那个 我也不回 所以 求助了程序太慢了 存放数据的Set是HashSet?可以用contain判断吧,不包含的就放到新的Set中。 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(); 如果我想要这样的结果,你能做到吗? 帮我看看什么错!编译通过,运行显示main():java.lang.NullPointException 大家来解题? 新手请教关于package的问题 如何学习java 无法从静态上下文引进非静态方法nextInt(),如何解决? 新手问:APPLETVIEWER可以直接运行JAVA文件吗 在JTable中单元格跳动的问题? >>>>>>>>>>>>>>Tomcat4的问题,非常着急 如何把java程序编译成可执行的exe文件? 问题求解 求 以SSH 框架为底层开发的 Java权限管理系统模块!
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();
}
}
}
}
可以用contain判断吧,不包含的就放到新的Set中。
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();