앞서 포스팅 한 것처럼 contains를 활용하여 변수 및 리스트에 객체가 포함되어 있는지 확인이 가능하다.
String str = "contains TEST";
System.out.println(str.contains("contains")); // true
List<String> list = new ArrayList<String>();
list.add("금요일");
System.out.println(list.contains("금요일")); // true
그럼 이 contains 가 어떻게 비교하는지 아라보자~!
contain... 포함, 함유, 일부 라는 뜻이다. 이 함수를 사용하여 내가 확인하고 싶은 값이 있는지, 없는지
확인이 가능한데,
contains 함수는 모든클래스가 상속하고 있는 Object Class 내부의 equals를 활용하여 구현되었다.
먼저 ArrayList 에 있는 contains 함수를 찾아보자.
ArrayList 내부의 contains를 찾아 보면, idnexOf(o) 를 return 한다.
바로 아래 indexOf(Object o)를 살펴보면, equlas를 사용하여 ArrayList 사이즈만큼 순회하면서 비교를 하고 있는 것을 볼 수 있다.
그리고 아래의 equals 메소드를 타고 들어가보면,
모든 클래스가 상속하는 Object 클래스 내부의 equals를 사용한 것을 확인할 수 있다.
또한, 유저가 원하는 객체에 equals 메소드를 재정의하여 사용 가능하다.
ex) User.java
public class User {
String name;
....
// setter / getter 등...
@Override
public boolean equals(Object obj) {
User user = (User)obj;
// user 내부에 같은값을 원하는 내용으로 재정의
return boolean;
}
}
ㅃㅃ~
본문 내용이 도움이 되셨다면, 아래의 공감버튼을 눌러주세요.
정보 공유를 위한 포스팅에 큰 힘이 됩니다.
만약 틀린 정보가 있으면 댓글 달아주세요. 수정하도록 하겠습니다.
읽어주셔서 감사합니다. 오늘도 좋은 하루 보내세요.
'JAVA' 카테고리의 다른 글
Log4j 취약점 (긴급조치) (0) | 2021.12.21 |
---|---|
[JAVA] java cron expression (0) | 2021.10.29 |
[JAVA] Json key값 존재 여부 확인 .has() (0) | 2021.10.26 |
[Maven] 프로젝트에 Json lib 추가하기, Exception in thread "main" java.lang.NoClassDefFoundError: (0) | 2021.10.26 |
[JAVA] 특정 문자 포함 확인 .contains (String, List ) (0) | 2021.10.15 |