这个在JAVA中怎样实现?

qq_28484955 2019-09-04 10:17:21
ArrayList<String> a=new ArrayList<>(); ArrayList<String> b=new ArrayList<>(); int cnt=0; ArrayList<String> c=new ArrayList<>(); a.add("1,2,3,4,5,6,7"); a.add("1,3,9,4,5,6,8"); a.add("1,3,4,5,6,7,8"); a.add("1,2,3,4,7,8,9"); a.add("1,9,3,5,7,8,10"); a.add("1,2,3,4,6,7,8"); a.add("1,2,3,4,5,6,7"); a.add("11,12,13,14.15,16,17"); b.add("1,2"); b.add("5,6"); 将a集合与b集合逐个数组进行比较,如果a集合数组里面没有b集合里的数组元素,则cnt+1,如果a集合里数组里面有b集合里的数组元素,则把a集合里包含的b集合的数组元素添加到c集合里! 例如: a集合中“1,2,3,4,5,6,7”包含b集合中“1,2”和“5,6”。就把“1,2”和“5,6”分别添加到c集合中。 a集合里“1,9,3,5,7,8,10”包含b集合里1和5,就把1和5分别添加到c集合。 a集合中“11,12,13,14,15,16,17”不包含b集合中的元素。则cnt+1。
...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_28484955 2019-09-05
  • 打赏
  • 举报
回复
引用 1 楼 最小动能!的回复:
这个思路不难啊 你是要完整代码吗
是的!我想要完整的实现代码!
weixin_42392002 2019-09-05
  • 打赏
  • 举报
回复
1、将b集合变为[“1”,“2”,“5”,“6”],或者直接定义b集合为[“1”,“2”,“5”,“6”] 2、遍历a集合,将a集合元素逗号分隔获得数组转为aSubList。遍历b集合,如果aSbuList.contains(b集合元素)则添加到c,否则cnt+1
最小动能! 2019-09-05
  • 打赏
  • 举报
回复
这个思路不难啊 你是要完整代码吗
最小动能! 2019-09-05
  • 打赏
  • 举报
回复
package tee; import java.util.ArrayList; class test1 extends T2{ { System.out.println("test"); } R1 r=new R1(); test1(int i) { super(i); System.out.println("test1"+i); } static{ System.out.println("test1 static"); } // public static void fun(){ // System.out.println("123"); // } } public class Test { public static void main(String[] args) { // TODO Auto-generated method stub /*String s="1,2,3,4"; String [] S=s.split(","); System.out.println(S.length);*/ ArrayList<String> a=new ArrayList<>(); ArrayList<String> b=new ArrayList<>(); int cnt=0; ArrayList<String> c=new ArrayList<>(); a.add("1,2,3,4,5,6,7"); a.add("1,3,9,4,5,6,8"); a.add("1,3,4,5,6,7,8"); a.add("1,2,3,4,7,8,9"); a.add("1,9,3,5,7,8,10"); a.add("1,2,3,4,6,7,8"); a.add("1,2,3,4,5,6,7"); a.add("11,12,13,14,15,16,17"); b.add("1,2"); b.add("5,6"); /* * i 是a中的string * j是b中的string * z获取b的字符串 * * */ for(String i:a ){ boolean index=false; for (String j:b){//遍历j中字母 看是否在a中 ArrayList<String> zs=new ArrayList<>(); String z; z=""; String []str=j.split(","); String []str1=i.split(","); for (int k=0;k<str.length;k++){ z=new String( str[k]); for(String s:str1) { //System.out.println(s); if(z.equals(s)){ index=true; zs.add(z); } } } if(zs.size()>0) { c.add(String.join("", zs)); } } if(!index){ cnt++; } } /* * 输出看看 */ for(String I:c ) { System.out.println(I); } System.out.println("cnt"+cnt); } } 上面多的东西无视就好
weixin_42392002 2019-09-05
  • 打赏
  • 举报
回复
public static void test123() { ArrayList<String> a = new ArrayList<>(); ArrayList<String> b = new ArrayList<>(); int cnt = 0; ArrayList<String> c = new ArrayList<>(); a.add("1,2,3,4,5,6,7"); a.add("1,3,9,4,5,6,8"); a.add("1,3,4,5,6,7,8"); a.add("1,2,3,4,7,8,9"); a.add("1,9,3,5,7,8,10"); a.add("1,2,3,4,6,7,8"); a.add("1,2,3,4,5,6,7"); a.add("11,12,13,14.15,16,17"); b.add("1,2"); b.add("5,6"); for (int j = 0; j < a.size(); j++) { String aStr = a.get(j); String[] aArr = aStr.split(","); List<String> aList = Arrays.asList(aArr); for (int i = 0; i < b.size(); i++) { String bStr = b.get(i); String[] bArr = bStr.split(","); List<String> bList = Arrays.asList(bArr); boolean hasFlag = true; for (int k = 0; k < bList.size(); k++) { String kStr = bList.get(k); if (!aList.contains(kStr)) { hasFlag = false; continue; } } if (hasFlag) { if (!c.contains(bStr)) {// 如果c不可以重复,如果可以的话就去掉 c.add(bStr); } } else { cnt++; } } } System.out.println(cnt); System.out.println(c.size()); for (int i = 0; i < c.size(); i++) { String cStr = c.get(i); System.out.println("cStr:" + cStr); } }
qq_28484955 2019-09-05
  • 打赏
  • 举报
回复
引用 2 楼 weixin_42392002的回复:
1、将b集合变为[“1”,“2”,“5”,“6”],或者直接定义b集合为[“1”,“2”,“5”,“6”] 2、遍历a集合,将a集合元素逗号分隔获得数组转为aSubList。遍历b集合,如果aSbuList.contains(b集合元素)则添加到c,否则cnt+1
完整代码怎么写,好像这样不能实现!
qq_28484955 2019-09-05
  • 打赏
  • 举报
回复
完整代码怎么写?好像这样不能实现!

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧