ArrayList의 contains()메소드는 어떤걸 비교하나요?


ArrayList<Thing> basket = new ArrayList<Thing>();  
Thing thing = new Thing(100);  
basket.add(thing);  
Thing another = new Thing(100);  
basket.contains(another); // true or false?

class Thing {  
    public int value;  

    public Thing (int x) {
        value = x;
    }

    equals (Thing x) {
        if (x.value == value) return true;
        return false;
    }
}

위의 코드에서 객체를 하나 생성해 ArrayList에 넣었는데요. 그리고 바로 똑같은 값을 넣어서 다른 객체를 만들었잖아요. contains()메소드는 두 객체가 같은지를 평가하는건가요? 생성자는 입력 값을 받는것 밖에 안하고 두 객체의 변수가 모두 동일했을때 contains()메소드가 true를 반환하도록 구현하는 방법이 있나요?

  • 2016년 01월 29일에 작성됨

조회수 1076


1 답변


좋아요
0
싫어요
채택취소하기

ArrayList는 List 인터페이스를 구현한 클래스입니다. 자바문서에서 List를 찾아서 contains메소드를 보시면 contains()가 equals()메소드로 만들어진걸 볼수있습니다. equals()메소드는 두 객체가 같은지를 판단하는 메소드입니다.

  • 2016년 01월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close