忍者ブログ
まにょのITメモ
[1]  [2
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalSample {

    public static void main(String[] args) {
  
        BigDecimal bd = new BigDecimal("0.123456");
  
        System.out.println("切り上げ : " + bd.setScale(4, RoundingMode.CEILING));
        System.out.println("切り捨て : " + bd.setScale(4, RoundingMode.FLOOR));
        System.out.println("四捨五入 : " + bd.setScale(4, RoundingMode.HALF_UP));

    }

}


これを実行すると

切り上げ : 0.1235
切り捨て : 0.1234
四捨五入 : 0.1235

となる。


計算したい数値(BigDecimal型).setScale(表示したい小数点以下の位 , 数字の丸め方)

PR

■Manyo クラス

[strart]----------------------------------------------------------------------------------------------------
package jp.co.bean;

import org.apache.commons.lang.builder.ToStringBuilder;

public class Manyo {
    /** 名前 */
    private String name;
    /** 色 */
    private String color;
    /** サイズ */
    private String size;
   
    /**
     * @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;
    }
    /**
     * @return サイズ
     */
    public String getSize() {
        return size;
    }
    /**
     * @param サイズ 設定する
     */
    public void setSize(String size) {
        this.size = size;
    }
   
    public String toString(){
        return ToStringBuilder.reflectionToString(this);
    }
}
[end]------------------------------------------------------------------------------------------------------

■Mainクラス
[strart]----------------------------------------------------------------------------------------------------
package jp.co.main;

import java.util.ArrayList;
import java.util.List;

import jp.co.bean.Manyo;

public class Main {
    public static void main(String[] args) {
        List list = new ArrayList();
       
        // まにょクラス1
        Manyo manyo1 = new Manyo();
        manyo1.setName("まにょ");
        manyo1.setColor("黄色");
        manyo1.setSize("小さい");
        list.add(manyo1);
       
        System.out.println(manyo1.toString());
    }
}
[end]------------------------------------------------------------------------------------------------------

※説明
・toStringを実装しない場合の出力結果
  jp.co.bean.Manyo@1a758cb
・toStringを実装した場合の出力結果
  jp.co.bean.Manyo@1a758cb[name=まにょ,color=黄色,size=小さい]

toStringを実装したほうは、フィールド名と値が表示されている。
デバッグなどに便利
 

■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]