[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
■Manyoクラス
[strart]----------------------------------------------------------------------------------------------------
package jp.co.bean;
import org.apache.commons.lang.builder.HashCodeBuilder;
public class Manyo {
/** 名前 */
private String name;
/** 色 */
private String color;
/**
* @return 色
*/
public String getColor() {
return color;
}
/**
* @param 色 設定する
*/
public void setColor(String color) {
this.color = color;
}
/**
* @return 名前
*/
public String getName() {
return name;
}
/**
* @param 名前 設定する
*/
public void setName(String name) {
this.name = name;
}
public boolean equals(Object object){
boolean flag = false;
if (object instanceof Manyo) {
Manyo manyo = (Manyo)object;
if (this.name.equals(manyo.getName())
&& this.color.equals(manyo.getColor())){
flag = true;
}
}
return flag;
}
public int hashCode(){
return HashCodeBuilder.reflectionHashCode(this);
}
}
[end]------------------------------------------------------------------------------------------------------
■Mainクラス
[strart]----------------------------------------------------------------------------------------------------
package jp.co.main;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import jp.co.bean.Manyo;
public class Main {
// 異なるまにょクラスを格納する変数
private static Map manyoMap = new HashMap();
public static void main(String[] args) {
List list = new ArrayList();
// まにょクラス1
Manyo manyo1 = new Manyo();
manyo1.setName("まにょ");
manyo1.setColor("黄色");
list.add(manyo1);
// まにょクラス2
Manyo manyo2 = new Manyo();
manyo2.setName("まにょ");
manyo2.setColor("黄色");
list.add(manyo2);
// まにょクラス3
Manyo manyo3 = new Manyo();
manyo3.setName("まにょ");
manyo3.setColor("赤色");
list.add(manyo3);
// 上記で作成したまにょクラス一覧をマップにセットするメソッドに渡していく。
for (Iterator it = list.iterator(); it.hasNext();) {
Manyo manyo = (Manyo) it.next();
setMap(manyo);
}
}
private static void setMap(Manyo manyo){
// 同じ値が入っているか確認する
if (manyoMap.containsKey(manyo)){
System.out.println("すでに登録されています。");
} else {
System.out.println("登録されていないので追加します。");
manyoMap.put(manyo, new StringBuilder()
.append("名前 : ")
.append(manyo.getName())
.append(" 色 : ")
.append(manyo.getColor()));
}
}
}
[end]------------------------------------------------------------------------------------------------------
※説明
equalsとhashCodeを実装すれば
オブジェクトをキーとして扱えるようになる。
(フィールドの項目が一致するかで判定できる)
補足
public boolean equals(Object object){
return EqualsBuilder.reflectionEquals(this, object);
}
このように書くと
自分のオブジェクトのフィールドと
引数で渡されたフィールドの
同じ名前を持ったすべての項目と比較する。