JAvaのcollectionクラス使用
2645 ワード
collectionでよく使われる方法:
追加:
1:add()指定したオブジェクトをコンテナに格納 add メソッドのパラメータタイプはObject 任意のオブジェクトの受信が容易
2:addAll() 指定したセットの要素をメソッドとセットを呼び出すには
削除:
3:remove() 指定したオブジェクトをコレクションから削除
4:removeAll() 指定したコレクションの要素を削除
変更
5:clear() コレクション内のすべての要素をクリア
と判断
6:isEmpty() 集合が空かどうかを判断する
7:contains() 集合に指定したオブジェクトが含まれているかどうかを判断する
8:containsAll() 集合に指定された集合が含まれているかどうかを判断equals()を使用して2つのオブジェクトが等しいかどうかを判断する
取得:
9:int size() コレクションコンテナのサイズを返します
配列10に変換: toArray() 集合変換配列、Object配列への変換
例:
次の点に注意してください.
1:Personクラス
1:名前と年齢
2:hashCodeとequalsメソッドの書き換え
1:書き換えない場合、Objectクラスのequalsメソッドを呼び出し、メモリアドレスをfalseと判断する
1:Personクラスのオブジェクトで、名前と年齢が同じ場合はtrueを返します.
2:書き換えない場合は、親hashCodeメソッドを呼び出します.
1:equalsメソッドが同じであればhashCodeも同じで、hashCodeメソッドを書き換える必要があります
3:toStringメソッドの書き換え
1:書き換えずに、ObjectクラスのtoStringメソッドを直接呼び出し、そのオブジェクトのメモリアドレスを印刷する
Personクラス
追加:
1:add()指定したオブジェクトをコンテナに格納 add メソッドのパラメータタイプはObject 任意のオブジェクトの受信が容易
2:addAll() 指定したセットの要素をメソッドとセットを呼び出すには
削除:
3:remove() 指定したオブジェクトをコレクションから削除
4:removeAll() 指定したコレクションの要素を削除
変更
5:clear() コレクション内のすべての要素をクリア
と判断
6:isEmpty() 集合が空かどうかを判断する
7:contains() 集合に指定したオブジェクトが含まれているかどうかを判断する
8:containsAll() 集合に指定された集合が含まれているかどうかを判断equals()を使用して2つのオブジェクトが等しいかどうかを判断する
取得:
9:int size() コレクションコンテナのサイズを返します
配列10に変換: toArray() 集合変換配列、Object配列への変換
例:
Collection c1 = new ArrayList();
c1.add("wuli");//add Object
c1.add("huaxue");
System.out.println(c1);// [wuli, huaxue]
Collection c2 = new ArrayList();
c2.add("lishi");
c2.addAll(c1); //addAll
System.out.println(c2); //[lishi, wuli, huaxue]
System.out.println(c2.contains("shuxue")); //false
System.out.println(c2.contains("wuli")); //true
System.out.println(c2.containsAll(c1)); //true
class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public int hashCode() {
return this.name.hashCode() + age;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Person)) {
return false;
}
Person p = (Person) obj;
return this.name.equals(p.name) && this.age == p.age;
}
@Override
public String toString() {
return "Person :name=" + name + ", age=" + age;
}
}
public static void main(String[] args) {
Person p1 = new Person(" ", 19);
Person p2 = new Person(" ", 20);
Person p3 = new Person(" ", 18);
Collection list = new ArrayList();
list.add(p1);
list.add(p2);
list.add(p3);
// isEmpty()
boolean empty = list.isEmpty();
System.out.println(empty);
//
int size = list.size();
System.out.println(size);
// contains()
boolean contains = list.contains(p1);
System.out.println(contains);
// remove();
list.remove(p1);
// clear()
list.clear();
System.out.println(list);
}
次の点に注意してください.
1:Personクラス
1:名前と年齢
2:hashCodeとequalsメソッドの書き換え
1:書き換えない場合、Objectクラスのequalsメソッドを呼び出し、メモリアドレスをfalseと判断する
1:Personクラスのオブジェクトで、名前と年齢が同じ場合はtrueを返します.
2:書き換えない場合は、親hashCodeメソッドを呼び出します.
1:equalsメソッドが同じであればhashCodeも同じで、hashCodeメソッドを書き換える必要があります
3:toStringメソッドの書き換え
1:書き換えずに、ObjectクラスのtoStringメソッドを直接呼び出し、そのオブジェクトのメモリアドレスを印刷する
Personクラス