공부 흔적남기기

java ArrayList.contains 헷갈리는 부분 본문

프로그래밍 언어/Java

java ArrayList.contains 헷갈리는 부분

65살까지 코딩 2022. 1. 15. 12:05
728x90
반응형

ArrayList의 contains는 자주 사용하는 문법인데 헷갈리는게 있어서 정리하려고한다

	String string = "abc";	//리터럴 방식
        arrayList.add(string);
        String string2 = "abc"; //리터럴 방식
        String string3 = "abc"; //리터럴 방식
        System.out.println(string ==string2);
        System.out.println(string ==string3);
        System.out.println(string2 ==string3);
        System.out.println(string.equals(string2));
        System.out.println(arrayList.contains(string2));
        System.out.println(arrayList.contains("abc"));
 /*
true
true
true
true
true
true 
 */

리터럴 방식으로 했을 떄는 모두 같은 주소를 가르켜 모두 다 같은 값

 

 ArrayList<String> arrayList = new ArrayList<>();
        String string = new String("abc");
        arrayList.add(string);
        String string2 = new String("abc");
        String string3 = new String("abc");
        System.out.println(string ==string2);
        System.out.println(string ==string3);
        System.out.println(string2 ==string3);
        System.out.println(string.equals(string2));
        System.out.println(arrayList.contains(string2));
        System.out.println(arrayList.contains(string3));
        System.out.println(arrayList.contains("abc"));
       
/*
false
false
false
true
true
true
true
*/

서로다른 개체이므로 false 지만 

ArrayList.contains()에서는 객체로 비교하는 것이 아니라 값으로 비교하는 것을 알 수 있다!

 

cf). HashMap의 containsKey나 다른 contain들도 값을 기준으로 여부를 확인하는 것 같다!

728x90
반응형

'프로그래밍 언어 > Java' 카테고리의 다른 글

JAVA 자바 프로세스와 쓰레드  (0) 2023.05.16
JAVA 자바 기본적인 배경지식  (0) 2023.05.09
java string 문자열 뒤집기 reverse하기  (0) 2022.01.15
java string.replace  (0) 2022.01.15
java string.split의 기능  (0) 2022.01.15