본문 바로가기

나는개발자다/기타

java의 List에서 retain의미.. (두개의 리스트에서 같은것만 )

예전 코딩할 때가 생각이 난다.

두개의 list에서 같은것만 새로운 리스트에 담는것.. for 구문 돌려서 고생했던 기억이 난다. ㅎㅎ 몇 년전 이야이지만

아마도  retainAll 이 메소드 몰랐으면 같은 방법으로 코딩할 것이다.

소스를 보면 아주 쉽다.

public class Retain {
	public static void main(String args[]){
		ArrayList a = new ArrayList();
		a.add("a");
		
		ArrayList b = new ArrayList();
		b.add("b");
//		b.add("a");
		
		a.retainAll(b);
		
		System.out.println("a size : "+ a.size());
		
		for ( String result : a ){
			System.out.println(result);
		}
	}
}


a list에는 "a"가 입력이 되어있다.
b list에는 "b"가 입력이 되어있다.

이 상황에서 a.retainAll(b)를 하게 되면 a list의 size는 0 된다. 같은것이 없기 때문에.
하지만 b list에 "a","b"가 입력되어 있을 경우 a list의 size는 1이 된다.


간단하다.