###前提・実現したいこと
ArrayList
TreeMap
Calendar
を用いて月間、週間の売上げの集計ができるプログラムをつくりたいです。
TreeMapを使ってAggDataListのListからtreemapへ値を格納しiteratorで取り出すプログラミングだと思うのですがソースの書き方が判らなくつまづいています。
ご助言宜しくお願いします。
###月別集計を行うためのクラス
import java.util.ArrayList;
import java.util.Calendar;
import java.util.TreeMap;
public class MonthlyAggList implements AggListIF {
private final AggDataList list = new AggDataList(); public MonthlyAggList() { list.setListName( "月別集計" ); } @Override public void makeList( SalesList sl ) { TreeMap<String, Integer> treemap = new TreeMap(); ArrayList<AggData> al = new ArrayList(); for ( int i = 0; i < sl.size(); ++i ) { int goukei = sl.list.get(i).getSales(); int sales = sl.list.getSales( i ).getSales(); Calendar calendar = Calendar.getInstance(); int year = calendar.get( Calendar.YEAR ); int month = calendar.get( Calendar.MONTH) ; int day = calendar.get( Calendar.DATE); int sales = 0 ; この部分がわかりません } } @Override public AggDataList getList() { return this.list; } @Override public int size() { return this.list.size(); }
}
###週別集計を行うためのクラス
public class WeeklyAggList implements AggListIF {
private final AggDataList list = new AggDataList(); public WeeklyAggList() { list.setListName( "週別集計" ); } @Override public void makeList( SalesList sl ) { }
この部分がわかりません
@Override public AggDataList getList() { return this.list; } @Override public int size() { return this.list.size(); }
}
###集計したデータをまとめるクラス
import java.util.List;
public class AggDataList {
private List<AggData> list; private String listName; public void setList( List<AggData> list ) { this.list = list; } public AggData getData( int i ) { return this.list.get( i ); } public int size() { return this.list.size(); } public String getListName() { return this.listName; } public void setListName( String string ) { this.listName = string; }
}
###集計したデータを扱うクラス
public class AggData {
private String label; private int data; public int getData() { return this.data; } public String getLabel() { return this.label; } public void setData( int i ) { this.data = i; } public void setLAbel( String string ) { this.label = string; }
}
###日々の売上げを管理するクラス
import java.util.Calendar;
public class Sales {
private Calendar date; private int sales; public Sales( int year, int month, int day, int sales ) { this.date = Calendar.getInstance(); date.set( year, month - 1, day ); this.sales = sales; } public Calendar getDate() { return this.date; } public int getSales() { return this.sales; } public void setDate( Calendar calender ) { this.date = calender; } public void setSales( int i ) { this.sales = i; }
}
###売上げデータをまとめるクラス
import java.util.ArrayList;
import java.util.List;
public class SalesList {
private final List<Sales> list = new ArrayList<Sales>(); public void addSales( Sales s ) { this.list.add( s ); } public Sales getSales( int i ) { return this.list.get( i ); } public int size() { return this.list.size(); }
}
###実行用クラス
public class SalesAggExamMain {
public static void main( String[] args ) { SalesList list = new SalesList(); list.addSales( new Sales( 2004, 1, 1, 25000 ) ); list.addSales( new Sales( 2004, 1, 6, 42000 ) ); list.addSales( new Sales( 2004, 1, 12, 12000 ) ); list.addSales( new Sales( 2004, 1, 18, 55000 ) ); list.addSales( new Sales( 2004, 1, 24, 62000 ) ); list.addSales( new Sales( 2004, 1, 30, 19000 ) ); list.addSales( new Sales( 2004, 2, 4, 83000 ) ); list.addSales( new Sales( 2004, 2, 10, 48000 ) ); list.addSales( new Sales( 2004, 10, 1, 66000 ) ); list.addSales( new Sales( 2004, 10, 3, 16000 ) ); list.addSales( new Sales( 2004, 10, 9, 92000 ) ); list.addSales( new Sales( 2005, 1, 1, 33000 ) ); makeAndDispAggList( list, new WeeklyAggList() ); makeAndDispAggList( list, new MonthlyAggList() ); } public static void makeAndDispAggList( SalesList salesList, AggListIF aggList ) { aggList.makeList( salesList ); AggDataList result = aggList.getList(); System.out.println( result.getListName() ); for ( int i = 0; i < result.size(); i++ ) { AggData data = result.getData( i ); System.out.println( data.getLabel() + " : : " + data.getData() ); } }
}
###各集計用クラスが実装するインターフェース
public interface AggListIF {
void makeList( SalesList sl ); AggDataList getList(); int size();
}
###補足情報(言語/FW/ツール等のバージョンなど)
java
eclipse
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/26 06:08
2016/04/26 09:18