在调用java中的retainall时遇到个问题,
代码如下:
public static ArrayList<Integer> res_and(ArrayList<Integer> s1,ArrayList<Integer> s2)
{
s1.retainAll(s2);
// System.out.println("s1=");
// System.out.println(s1);
return s1;
我定义了一个函数,用来求出s1和s2共有的部分,将其保存在s1中。
但是貌似这么写会导致s1中重复元素会重复出现两次。
解决办法:在返回前加上一句
s1 = new ArrayList<Integer>(new HashSet<Integer>(s1));
即可。