2011-09-25 3 views
1

검색 용어를 설명 할 수 있다면 쉽게 이해할 수 있습니다. 그것은 단지 부울 "it it there"결과를 원한다는 것을 제외하고는 Finding all objects that have a given property inside a collection과 유사합니다.오브젝트가 부분 일치하는지 여부에 대한 부울 값 가져 오기 (Java)

고양이의 TreeSet을 정렬 해 놓았습니다. 각 고양이는 이름, 나이, 음식 등이 있습니다. 나는 잠재적 인 고양이 이름마다 뭔가 복잡한 점이 있지만, 이미 고양이가 있다면 그것을 건너 뛰고 싶습니다. 그 이름을 가진 내 TreeSet. 나는 다른 속성들과 일치하는지 상관하지 않는다. 나는 분명히 if (!AlltheCats.contains(candidateName))...을 할 수 없다. 그 이유는 candidateName 문자열과 객체 Cat 사이에 형식 불일치가 있기 때문이다. 그러나 나는 나이, 음식 등에 대한 가치에 관심이 없기 때문에 동일한 일치를 검색 할 대상을 만들 수 있다고 생각하지 않습니다.

어떻게하면 효과적이고 우아한 방법일까요? ?

답변

3

이름이 들어있는 문자열이 HashSet 인 고양이를 만들 때마다 고양이가 이미 세트에 있는지 확인하고, 고양이 인 경우이 고양이는 건너 뜁니다. 계속 진행하면서이 세트를 수정하십시오.

(*)이 답변은 동일한 이름의 한 고양이 [및 0이 아닌 고양이]에 대해 메소드를 호출한다고 가정합니다.

그렇게 보일 것이다 :

Set<String> names = new HashSet<String>(); 
    for (Cat c : set) { 
     if (names.contains(c.getName())) { 
      continue; 
     } 
     names.add(c.getName()); 
     c.foo(); //your method here 
    } 
+0

덕분에, 나는 그 일이 좋은 간단한 방법을 간과 TreeSet의에서 작업을 수행하는 방법에 대해 열심히 생각하고 있었다! – umbraphile