実技(JSP/サーブレットプログラミング実習)12

1.MySQL復習
2.HashMapとは
3.HashMap演習
Q).以下の処理を実現せよ。
なお、集計結果の表示に順番の概念は無いものとする。

名前を入力(qで終了)>山田 [enter]
金額を入力>1000 [enter]
名前を入力(qで終了)>佐藤 [enter]
金額を入力>2000 [enter]
名前を入力(qで終了)>山田 [enter]
金額を入力>5000 [enter]
名前を入力(qで終了)>鈴木 [enter]
金額を入力>3000 [enter]
名前を入力(qで終了)>q [enter]
**集計**
鈴木:3000円
山田:6000円
佐藤:2000円

解)

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Kaikei {

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		Map<String,Integer> data=new HashMap<>();
		while(true) {
			System.out.print("名前を入力(qで終了)>");
			String name=scan.nextLine();
			if(name.equals("q")) {
				scan.close();
				break;
			}
			System.out.print("金額を入力>");
			int money=scan.nextInt();scan.nextLine();
			if(data.containsKey(name)) {
				money+=data.get(name);
			}
			data.put(name, money);
		}
		System.out.println("**集計**");
		for(String key:data.keySet()) {
			System.out.println(key+":"+data.get(key)+"円");
		}
	}
}

別解)Mapを使わない例

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

public class Kaikei2 {

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		List<Person> list=new ArrayList<>();
		while(true) {
			System.out.print("名前を入力(qで終了)>");
			String name=scan.nextLine();
			if(name.equals("q")) {
				scan.close();
				break;
			}
			Person s=null;
			for(Person person:list) {
				if(person.name.equals(name)) {
					s=person;
					break;
				}
			}
			if(s==null) {
				s=new Person(name);
				list.add(s);
			}
			System.out.print("金額を入力>");
			int money=scan.nextInt();scan.nextLine();
			s.amount+=money;
		}
		System.out.println("**集計**");
		for(Person p:list) {
			System.out.println(p);
		}
	}
}
class Person{
	String name;
	int amount;
	Person(String name){
		this.name=name;
	}
	@Override
	public String toString() {
		return this.name+":"+this.amount+"円";
	}
}

4.formを利用したアプリ
5.GETとPOSTの違い