Javaコンテナ--setインタフェース
設定した容器は、データストレージの順不同で、重複する値が含まれていません。設定されたインタフェースの実装クラスはHashSetの、TreeSetを持っています。またLinkedHashSetのはHashSetのクラスを継承しています。
(1)HashSetの実装クラスは
HashMapを使用して実装基礎となります。オブジェクトはハッシュマップのキー値に格納され、キーがない重複データオブジェクトことを確認するためのHashMapまたとない特性HashSetのを利用してもよいです。
HashSetのの原則の簡単なモックの実装は、次のとおりです。
public class MyHashSet {
HashMap map;
private int size;
private static final Object PRESENT = new Object();
public MyHashSet(){
map=new HashMap();
}
public int size(){
return map.size();
}
public void add(Object obj){
map.put(obj, PRESENT);//set的不可重复其实就是利用了map里面键的不可重复
}
public static void main(String[] args) {
MyHashSet set =new MyHashSet();
set.add("aaa");
set.add(new String("aaa"));
System.out.println(set.size());
}
}
(2)LinkedHashSetの実装クラス
LinkedHashSetのはHashSetのクラスを継承するが、保証されLinkedHashSetののLinkedHashMap、LinkedHashSetの要素の順序を使用し、挿入のためのマップをトラバースされる順序は同じです。
(3)実装クラスTreeSetの
TreeSetのたSortedSetはまた、インタフェースを実装します。TreeMapのを使用して、ストレージの基礎となる、あなたはそれ以外の場合は、デフォルトの辞書ソートComparableインタフェースを実装する必要がありますセットからの要素の順序付けられたシーケンスを抽出するためにそれを使用することができます。
設定が重複する値を許可しない実装、本質的に重要な特性としてマップセットによって実装マップセットの実装クラスに基づいて、上記の分析から見られています。
推奨:Javaの学習:Javaコンテナ--mapインターフェース(HashMapをシミュレートするために、実装コードの基礎となります)