Book Index AOJ ID_0105

よし今日はjavaFXの3Dについて勉強していたのだが、
合間にAOJを解いた問題のうち面白いMAPがあったので記す。

TREEMAPと言われるものである!!!

簡単に説明すると
HashMapに並びを加えたものだ。

HashMap ← "D","C","B","A"//入力
HashMap → "D","C","B","A"//出力

であるが
TreeMap ← "D","C","B","A"//入力
TreeMap → "A","B","C","D"//出力
となる。。。。。。。。。



本の索引 | Aizu Online Judge

この問題は順番がアルファベット順なので使える!!!
<数字のソートに関しては"Collections.sort"を使おう>

import java.util.*;
import java.io.*;
class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Map<String, ArrayList<Integer>> map = new TreeMap<String, ArrayList<Integer>>();
		ArrayList<Integer> page ;

		while (sc.hasNext() ) {
			String key = sc.next();
			int pageIn = sc.nextInt();
			if ( !map.containsKey(key) ) {
				map.put(key, new ArrayList<Integer>() );
			}
			map.get(key).add(pageIn);
		}
		
		
		Iterator it = map.keySet().iterator();
		while (it.hasNext()) {
			String key = (String) it.next();
			ArrayList <Integer> list = map.get(key);
			Collections.sort(list);
			System.out.println(key);
			for(int i = 0; i < list.size(); i++){
				if(i == 0){
					System.out.print(list.get(i));
				}else{
					System.out.print(" " + list.get(i));
				}
			}
			System.out.println();
			
        }
		
	}

}