2016-08-26 2 views
1

은 내가 TreeSet<MyObject>에서 다음과 같은 목적을 가지고 :내부 필드를 기반으로 TreeSet에서 객체를 찾는 가장 좋은 방법은 무엇입니까?

public class MyObject implements Comparable<MyObject> { 
    private Long id; 
    private String Name; 

    public void setId(Long id) { 
     this.id = id; 
    } 
} 
내가 id = 5의 요소가이 TreeSet에 있는지 검색하고 싶은

. 어떻게해야합니까?

+0

귀하의 객체가 아닌'서로 Comparable', 그래서 당신의'TreeSet'는 제시하지 않은'Comparator'을 사용해야합니다. 여러분이 물어 보는 것을 가장 잘 할 수있는 방법은 그 'Comparator'에 의해 정의 된 순서에 달려 있습니다. –

+0

'TreeMap' 또는'TreeSet'을 가지고 있습니까? 제목과 게시물이 서로 충돌합니다. – SamTebbs33

+0

검색 할 필요가 없습니다. 클래스의 인스턴스는 id가 5인데, 그 필드는 private이기 때문에 클래스의 (기본) 생성자에 의해 설정되지 않으며, 그것을 수정할 방법이 없습니다. 모든 인스턴스는'id == 0'을 가진다. –

답변

1

당신이 시도 할 수 있습니다 :

Iterator<MyObject> it = set.iterator(); 
while (it.hasNext()) { 
    MyObject object = it.next(); 
    if(object.id==5){ 
     // find it 
    } 
} 
+0

그리고 만약 그가 시도했다면'MyObject.id'가'private'이기 때문에 컴파일되지 않을 것입니다. –

+0

@CoXier 감사합니다! – Phopes

관련 문제