JAva——集合-set
1668 ワード
Setインタフェース
SetはCollectionインタフェースから継承され、setインタフェースの要素は無秩序であり、主に2つの実装クラスHashSetとTreeSetが重複しない.
HashSetコレクション
Setはリストセットのアクセス方式と同様にHashSetセットにオブジェクトを追加すると、まずオブジェクトのhashCode()メソッドを呼び出して要素の格納位置を決定し、次に呼び出しオブジェクトのequals()メソッドでその位置に重複要素がないことを確保する
TreeSetコレクション
内部は自己平衡の並べ替えの二叉木を採用して要素の二叉木のストレージ構造の第一要素を第一然後に置いて比較的に小さいのは左の大きいのは右の方に置いて、TreeSetがオブジェクトのタイプを保存するならば、オブジェクトのタイプにComparableインタフェースを実現させなければならなくて比較を実現することができません
ComparableとComparator
Comparable 1は、比較可能(クラス実装用)を表す.2、このインタフェースを実装すると、このクラスのインスタンスはサイズを比較することができ、自然にソートすることができる.3、compareTo()は正数を返して大きいことを表し、負数を返して小さいことを表し、0を返して等しいことを表す.4、Comparableの実現はequals()の結果が一致しなければならない.等しい対象の場合、比較結果は必ず0である.Comparator 1、比較ツール.2、一時的に比較ルールを定義するために使用され、デフォルトの比較ルールではありません.
SetはCollectionインタフェースから継承され、setインタフェースの要素は無秩序であり、主に2つの実装クラスHashSetとTreeSetが重複しない.
HashSetコレクション
Setはリストセットのアクセス方式と同様にHashSetセットにオブジェクトを追加すると、まずオブジェクトのhashCode()メソッドを呼び出して要素の格納位置を決定し、次に呼び出しオブジェクトのequals()メソッドでその位置に重複要素がないことを確保する
TreeSetコレクション
内部は自己平衡の並べ替えの二叉木を採用して要素の二叉木のストレージ構造の第一要素を第一然後に置いて比較的に小さいのは左の大きいのは右の方に置いて、TreeSetがオブジェクトのタイプを保存するならば、オブジェクトのタイプにComparableインタフェースを実現させなければならなくて比較を実現することができません
ComparableとComparator
Comparable 1は、比較可能(クラス実装用)を表す.2、このインタフェースを実装すると、このクラスのインスタンスはサイズを比較することができ、自然にソートすることができる.3、compareTo()は正数を返して大きいことを表し、負数を返して小さいことを表し、0を返して等しいことを表す.4、Comparableの実現はequals()の結果が一致しなければならない.等しい対象の場合、比較結果は必ず0である.Comparator 1、比較ツール.2、一時的に比較ルールを定義するために使用され、デフォルトの比較ルールではありません.
:Comparator
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CompareDemo {
public static void main(String[] args) {
String compareTo()
int a = "Tom".compareTo("Jerry");
System.out.println(a);
a = "Tom".compareTo("Tom");
System.out.println(a);
a = "Jerry".compareTo("Tom");
System.out.println(a);
List names = new ArrayList();
names.add("Tom");
names.add("Jerry");
names.add("Black");
names.add("Andy");
names.add("Lee");
ByLength byLength = new ByLength();
Collections.sort(names, byLength);
System.out.println(names);
}
}
class ByLength implements Comparator {
@Override
public int compare(String o1, String o2) {
return -(o1.length() - o2.length()); //
}
}