忍者ブログ
まにょのITメモ
[18]  [17]  [16]  [15]  [14]  [13]  [12]  [11]  [10]  [9]  [8
×

[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);
}

このように書くと
自分のオブジェクトのフィールドと
引数で渡されたフィールドの
同じ名前を持ったすべての項目と比較する。


 

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
この記事のURL:
忍者ブログ * [PR]