나는 본질적 HashSet
에 대한 래퍼의 사용자 지정 컬렉션 MySet<T>
라고 썼다커스텀 컬렉션에서`Collections.min()`을 어떻게 사용합니까?
import java.util.Collections;
import java.util.HashSet;
public class MySet <T> {
private HashSet<T> set;
public MySet() {
this.set = new HashSet<>();
}
public MySet(T[] elements) {
this.set = new HashSet<>();
Collections.addAll(this.set, elements);
}
public HashSet<T> getSet() {
return this.set;
}
}
그것은 union()
같은 세트의 관련이있는 방법을 포함 intersect()
등
또한 Person
라는 클래스를 썼다 어떤 사람에 대한 기본적인 세부 사항을 표현하고 Comparable
인터페이스를 구현합니다 :
public class Person implements Comparable<Person> {
private int id;
private String name;
private int age;
public Person(int id, int age, String name) {
this.id = id;
this.age = age;
this.name = name;
}
private boolean equals(Person p) {
return this.age == p.age;
}
public int compareTo(Person p) {
return this.age - p.age;
}
}
age
필드를 기준으로 Person
개체를 비교합니다.
MySet<Person>
객체를 받게되며 최소
Person
을 결정하는 방법이있을 것이다 세 번째 클래스를 작성해야
. 물론 이것은 최소 연령을 찾기 위해 두 개의 루프를 사용하여 수동으로 수행 할 수 있지만 요점은 제네릭에 대한 자바 방법을 사용하는 것입니다, 그래서 비록 Collections.min()
MySet<Person>
에 사용 : public class MinimumClass<T> {
public T minElement(MySet<T> set) {
Collections.min(set);
}
}
컴파일되지 않는 및 제공 오류 : no instance(s) of type variable(s) T exist so that MySet<T> conforms to Collection<? extends T>
내가 이해하는 한 MySet
에 Collection
인터페이스를 구현해야한다는 것을 의미합니다.
Person
이 Comparable
및 MySet
을 구현하는 최소 인물을 결정하는 방법을 쓰는 쉬운 방법은 제네릭 클래스입니까?
왜'MySet'이'Collection' 인터페이스를 암시하는 것을 피합니까? – Mureinik
@Mureinik 왜냐하면 하나만 사용하기 위해 10 가지 방법을 구현해야하기 때문입니다. – Yos
당신은 단지 그것들을 모두'Set'에 위임 할 수 있습니다 ... 상관없이 - MySet에서 요소를 되 찾을 수있는 방법이 있습니까? 공유 한 스 니펫에 아무 것도 표시되지 않습니다. – Mureinik