私はそれが本質的HashSet
のラッパーだ、MySet<T>
と呼ばれるカスタムコレクションを書きました:私もPerson
というクラスを書いたなどintersect()
、カスタムコレクションで `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()
のようなセットに関連するメソッドが含まれてい
を人に関する基本的な詳細を表しており、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
オブジェクトを比較します。
IのみMySet<Person>
オブジェクトを受け取り、最小Person
を決定する方法を有することになる第三のクラスを記述する必要が。もちろん、これは最低年齢を見つけるために2つのループを使用して手動で行うことができますが、ポイントは、ジェネリック医薬品のためのJavaメソッドを使用することですので、私はしかしMySet<Person>
にCollections.min()
を使用して:
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'インタフェースをimplmenetするのを避けていますか? – Mureinik
@Mureinikなぜなら、1つだけを使用するためには10のメソッドのようなものを実装しなければならないからです。 – Yos
あなたは、それらをすべて基本的な 'Set'に委譲することができます...関係なく、' MySet'から要素を戻す方法はありますか?共有したスニペットには何も表示されません。 – Mureinik