JAVA要怎样实现?
public class Main
{
public static void main(String[] args)
{
ArrayList<String> a = new ArrayList<String>();
ArrayList<String> b = new ArrayList<String>();
ArrayList<String> c = new ArrayList<String>();
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,7,3,8,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 i = 1; i < a.size(); i = i + 1) {
List l2 = new ArrayList<String>();
List l1 = new ArrayList<String>();
// 先将类似于"1,2,3,4,5,6,7"的字符串切割为["1","2",……]数组
String[] l1Sp = a.get(i - 1).split(",");
// 将数组转换为list
List l1List = Arrays.asList(l1Sp);
// 全部添加给l1
l1.addAll(l1List);
// l2同理
String[] l2Sp = a.get(i).split(",");
l2.addAll(Arrays.asList(l2Sp));
// 打点,取交集
l1.retainAll(l2);
c.add(l1.toString());
}
for (String s1 : b)
{
List list1 = new ArrayList<String>(Arrays.asList(s1.split(",")));
int cnt = 0;
int cnt2=0;
for (String s2 : c)
{
List list2 = new ArrayList<String>(Arrays.asList(s2.split(" ,")));
if (list2.containsAll(list1))
{
cnt = 0;
}
else
{
cnt ++;
if (cnt > cnt2)
{
cnt2 = cnt;
}
}
}
System.out.println(cnt);
System.out.println(cnt2);
}
}
}
怎么最后的cnt结果会是7呢?
我要实现的是a集合逐条取交集,得出的结果保存到c集合中!再用c集合逐条跟b集合比较,包含b集合则cnt归零,不包含则加1。结果不应该是7的!cnt2是保存最大值!