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(); } } }