Dev JS Blog

[JAVA] 두 리스트 비교 하기 본문

옛날 창고/개발

[JAVA] 두 리스트 비교 하기

Dev JS 2019. 4. 10. 15:18
728x90

[JAVA] 두 리스트 비교 하기

 

 

두 리스트를 비교하는 방법에 대해 알려드리겠습니다.

일단 두 리스트를 준비 해보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
ArrayList<String> a_List = new ArrayList<String>();
a_List.add("A");
a_List.add("B");
a_List.add("C");
System.out.println("a_List : "+ a_List);
 
ArrayList<String> b_List = new ArrayList<String>(); 
b_List.add("C");
b_List.add("D");
b_List.add("E");
System.out.println("b_List : "+ b_List);
cs

 

console

a_List : [A, B, C]
b_List : [C, D, E]

a_List 에는 [A,B,C]

b_List 에는 [C,D,E]

C만 중복되는 리스트 2개를 만들었습니다.

 

일단은 전체적으로 두 리스트가 같은지 다른지 비교하는 방법은

containAll 을 쓰는 방법 입니다.

1
2
a_List.containsAll(b_List);
System.out.println("a_List 와 b_List 비교 : "+a_List.containsAll(b_List));
cs

 

console

a_List 와 b_List 비교 : false

두 리스트가 같지 않아서 false가 나옵니다.

containAll 이 있다면 contains도 있습니다.

containAll에는 collection 이 들어가지만

contains에는 object 가 들어가서 한 값이 list에 있는지 비교합니다.

1
2
3
4
a_List.contains("A")
System.out.println("a_List 는 A를 가지고 있다 ? "+a_List.contains("A"));
a_List.contains("D")
System.out.println("a_List 는 D를 가지고 있다 ? "+a_List.contains("D"));
cs

console

a_List 는 A를 가지고 있다 ? true
a_List 는 D를 가지고 있다 ? false

한가지 값을 가지고 있는지 확인을 할 수 있습니다.

그럼 이걸 이용해서 for 문으로도 구성을 할 수 있겠죠?

1
2
3
4
5
6
7
for(int i = 0; i < a_List.size(); i++) {
    if(a_List.contains(b_List.get(i))) {
        System.out.println("a_List 에는 "+ b_List.get(i) + " 가 있다.");
    }else {
        System.out.println("a_List 에는 "+ b_List.get(i) + " 가 없다.");
    }
}
cs

이렇게 for 문을 활용해도 되고

1
2
3
4
5
6
7
for(String b : b_List) {
    if(a_List.contains(b)) {
        System.out.println("a_List 에는 "+ b + " 가 있다.");
    }else {
        System.out.println("a_List 에는 "+ b + " 가 없다.");
    }
}
cs

이렇게 for문을 해도 되구요

또 한가지 방법은 

1
2
3
4
5
6
7
8
9
10
Iterator<String> bItor = b_List.iterator();
 
while(bItor.hasNext()) {
    String b = bItor.next(); 
    if(a_List.contains(b)) {
        System.out.println("a_List 에는 "+ b + " 가 있다.");
    }else {
        System.out.println("a_List 에는 "+ b + " 가 없다.");
    }
}
cs

 

Iterator를 활용해도 됩니다.

어차피 결과는 똑같습니다.

console

a_List 에는 C 가 있다.
a_List 에는 D 가 없다.
a_List 에는 E 가 없다.

 

개발에는 정해진 답은 없으니까요~

728x90

'옛날 창고 > 개발' 카테고리의 다른 글

무료 SQL 툴 추천 및 설치방법  (1) 2019.09.23
[Javascript] jQuery를 이용한 배열 중복제거  (0) 2019.04.10
[Oracle] 오라클 날짜 포멧  (2) 2019.01.31
[jQuery] jQuery tooltip  (0) 2019.01.30
[JAVA] 자바 파일 복사  (2) 2019.01.05
Comments