retainall的问题

在调用java中的retainall时遇到个问题,

代码如下:

public static ArrayList res_and(ArrayList s1,ArrayList s2)
	{

		s1.retainAll(s2);
//		System.out.println("s1=");
//		System.out.println(s1);


		return s1;
		

我定义了一个函数,用来求出s1s2共有的部分,将其保存在s1中。

但是貌似这么写会导致s1中重复元素会重复出现两次。

解决办法:在返回前加上一句 

		s1  = new ArrayList(new HashSet(s1));

即可。

你可能感兴趣的:(java)