解説動画
ArrayListで作った表をグループ化して集計します。
SQLで言えば、group byに近いですね。
■動画はこちら
■Youtube版の解説で使用しているソースコード
動画と一緒にこちらも参考にどうぞ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class BushoGroup { public void execute() { //武将レコードのリストを作成、武将データを格納 ArrayList<BushoRec> recList = new ArrayList<BushoRec>(); recList.add(new BushoRec("SGM001","北条氏康","ホウジョウウジヤス",1515,"神奈川県")); recList.add(new BushoRec("KAI001","武田信玄","タケダシンゲン",1521,"山梨県")); recList.add(new BushoRec("OWR001","織田信長","オダノブナガ",1534,"愛知県")); recList.add(new BushoRec("OWR002","豊臣秀吉","トヨトミヒデヨシ",1537,"愛知県")); recList.add(new BushoRec("SGM002","北条氏政","ホウジョウウジマサ",1539,"神奈川県")); recList.add(new BushoRec("MKW003","徳川家康","トクガワイエヤス",1543,"愛知県")); //グループ化前の武将レコードのリストを出力 print(recList,"-- グループ化前 --"); //グループ化(出身地でグループ化) Map<String, Long> groupMap = recList.stream() .collect( Collectors.groupingBy( BushoRec::getSyusshin, Collectors.counting())); //グループ化後の出身地別の人数を出力 print(groupMap,"-- 出身地別の人数 --"); } private void print(Map<String, Long> map, String message) { System.out.println("-- 出身地別の人数 --"); for(Map.Entry<String, Long> entry : map.entrySet()) { System.out.println(entry.getKey() + ":" + entry.getValue() + "人"); } } private void print(List<BushoRec> recList, String message) { System.out.println(message); for(BushoRec rec : recList) { String str = "【ID】" + rec.getId() + "【人名】" + rec.getJinmei() + "【出身】" + rec.getSyusshin() + "【誕生(西暦)】" + rec.getTanjouNen(); System.out.println(str); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | public class BushoRec { private String id = null; private String jinmei = null; private String jinmeiKana = null; private int tanjouNen = -1; private String syusshin = null; public BushoRec(String id,String jinmei,String jinmeiKana,int tanjouNen,String syusshin) { this.id = id; this.jinmei = jinmei; this.jinmeiKana = jinmeiKana; this.tanjouNen = tanjouNen; this.syusshin = syusshin; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getJinmei() { return jinmei; } public void setJinmei(String jinmei) { this.jinmei = jinmei; } public String getJinmeiKana() { return jinmeiKana; } public void setJinmeiKana(String jinmeiKana) { this.jinmeiKana = jinmeiKana; } public int getTanjouNen() { return tanjouNen; } public void setTanjouNen(int tanjouNen) { this.tanjouNen = tanjouNen; } public String getSyusshin() { return syusshin; } public void setSyusshin(String syusshin) { this.syusshin = syusshin; } } |
1 2 3 4 5 6 7 8 | public class BushoGroupEntry { public static void main(String[] args) { BushoGroup bList = new BushoGroup(); bList.execute(); } } |