java String ArrayList数组是否有相同元素 以及相同元素个数

 问题:想要从俩个ArrayList中得到重复元素,已经重复的个数!
使用retainAll 此函数的作用是:

removeAll和retainAll 删除或保留ArrayList中包含Collection c中的的元素,这两个方法都依赖batchRemove(Collection<?> c, boolean complement)实现。

http://iamxi.iteye.com/blog/1451921 这里有关于ArrayList的源码解读


public class TestArrayList {
    public static void main(String[] args) {
        //初始化a1,a2,a3
        ArrayList<Integer> a1 = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6));
        ArrayList<Integer> a2 = new ArrayList<Integer>(Arrays.asList(1,2,3,4));
        ArrayList<Integer> a3 = new ArrayList<Integer>();
        //把a1的元素全加到a3里
        a3.addAll(a1);
        //把a2,a3的共同元素保存到a3
        a3.retainAll(a2);
        System.out.println(a3);
    }
}
在我的代码中的具体应用如下:
/**
	 * 此userId之前的用户加入了此eventId的用户中。有多少是他的关注者
	 * @param eventId
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public static int GetFollowingCountInThisEvent(String userId,String eventId) throws Exception
	{
		/*String eventId;String userId;
		 eventId ="18177707";
     	  userId = "54172324";*/
		//第一步:得到用户eventId的所有participants
		ArrayList<String> beforeUserArrayList = GetParticipantsByEventId(userId, eventId);
		//第二步: 得到用户userId的所有following
		System.out.println("开始获取用户的FollowingUser");
		ArrayList<String> userFollowingArralyList  = CollectUserInfo.getUserFollowingUserByUserId(userId) ;
		//第三步: 俩个ArrayList中重复的人数:
		ArrayList<String> userCommonArrayList = new ArrayList<String>();
		userCommonArrayList.addAll(beforeUserArrayList);
		userCommonArrayList.retainAll(userFollowingArralyList);
		for(String a : userCommonArrayList){
			System.out.println("共同的用户为"+a);
			
		}
		
		return userCommonArrayList.size();
	}

你可能感兴趣的:(java String ArrayList数组是否有相同元素 以及相同元素个数)