평행코드

Iterator , 동등성비교(equals @Override) 본문

Java

Iterator , 동등성비교(equals @Override)

나의 오류는 누군가 겪었던 오류 2023. 9. 20. 22:22
Iterator  : 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스

iterator() 메소드는 List와 Set 계열에서만 사용할 수 있다

* Map의 경우 Set 또는 List화 시켜서 iterator()를 사용해야 함

Set entry = fruits.entrySet();  // fruits의 데이터를 set화 시켜서 entry에 저장
Iterator it = entry.iterator(); // 저장된 데이터에 접근하는데 사용되는 인터페이스 Iterator로 데이터를 가져오기

가격이 20000원 이상인 과일만 key와 value출력

while(it.hasNext()) {
     Map.Entry f = (Map.Entry)it.next();
     Fruit fruit = (Fruit)f.getValue(); 
     // value에서 가격을 가져와야하니까 (Fruit)로 형변환을 해줌
     if(fruit.getPrice()>=20000) {
         System.out.println(f.getKey() + " " + f.getValue());
     }
}

 

@Override // 동등성비교의 기준잡기
public boolean equals(Object o) {	// o는 들어온값 입력받은값
    if(o instanceof Fruit) {		// o가 Fruit기반으로 만들어진것인가?
        Fruit f =(Fruit)o;			// 참이면 o를 (Fruit)로 형변환
        if(this.name.equals(f.name) // 기존의값과 입력받은값이 동일한지 검사
                &&this.origin.equals(f.origin)
                &&this.count==f.count
                &&this.price==f.price) {
            return true;			// 모두 같으면 true
        }
    }
    return false;
}

'Java' 카테고리의 다른 글

입출력(IO) 스트림  (0) 2023.10.03
자주쓰는 Exception  (0) 2023.09.21
다형성 추상클래스와 인터페이스  (0) 2023.09.17
오버라이딩과 오버로딩  (0) 2023.09.13
상속이란? 그리고 super  (0) 2023.09.12