-4

Bean の ArrayList があります。Bean 内には、"String monthYear" と "double bill" の 2 つのプロパティがあり、月の年に基づいて合計請求額を追加して取得する必要があります。

以下のコードに基づく例では、次の出力を取得する必要があります

 JAN-2013 = 210
 FEB-2013 = 20 
 NOV-2012 = 130 
 DEC-2012 = 40

public static void main(String[] args) {
        List<BillsBean> billList = new ArrayList<BillsBean>();

        BillsBean bills1 = new BillsBean();
        bills1.setMonthYear("JAN-2013");
        bills1.setBill(10);
        billList.add(bills1);

        BillsBean bills2 = new BillsBean();     
        bills2.setMonthYear("FEB-2013");
        bills2.setBill(20);
        billList.add(bills2);

        BillsBean bills3 = new BillsBean();
        bills3.setMonthYear("NOV-2012");
        bills3.setBill(30);
        billList.add(bills3);

        BillsBean bills4 = new BillsBean();
        bills4.setMonthYear("DEC-2012");
        bills4.setBill(40);
        billList.add(bills4);

        BillsBean bills5 = new BillsBean();
        bills5.setMonthYear("NOV-2012");
        bills5.setBill(100);
        billList.add(bills5);

        BillsBean bills6 = new BillsBean();
        bills6.setMonthYear("JAN-2013");
        bills6.setBill(200);
        billList.add(bills6);
}
4

3 に答える 3

1

クラスに次のメソッドを追加し、main から呼び出します。

private static void calculateSum(List<BillsBean> billList) {
    Map<String,Double> sumMap=new HashMap<>();
    for(BillsBean bean:billList)
        if(sumMap.containsKey(bean.getMonthYear()))
            sumMap.put(bean.getMonthYear(), bean.getBill()+sumMap.get(bean.getMonthYear()));
        else
            sumMap.put(bean.getMonthYear(),bean.getBill());
    Iterator iter = sumMap.keySet().iterator();
    while(iter.hasNext()){
        String key = iter.next().toString();
        System.out.println("Year: "+key+" Bill: "+sumMap.get(key));
    }
 }
于 2013-05-14T05:03:27.920 に答える