(Java)拡張for文とソート
メモ
- 配列
int[] array = {3,2,5,1,4}; for(int i : array) System.out.print(i+" "); Arrays.sort(array); System.out.println(); for(int i : array) System.out.print(i+" ");
出力
3 2 5 1 4 1 2 3 4 5
List<Character> al = new ArrayList<Character>(); al.add('C'); al.add('B'); al.add('E'); al.add('A'); al.add('D'); for(char c : al) System.out.print(c+" "); Collections.sort(al); System.out.println(); for(char c : al) System.out.print(c+" ");
出力
C B E A D A B C D E
- HashSet
Set<Double> set = new HashSet<Double>(); set.add(3.); set.add(2.); set.add(5.); set.add(1.); set.add(4.); set.add(5.);//重複は後に入力したデータが残る for(double d : set) System.out.print(d+" "); set = new TreeSet<Double>(set); System.out.println(); for(double d : set) System.out.print(d+" ");
出力
3.0 2.0 1.0 4.0 5.0 1.0 2.0 3.0 4.0 5.0
これなら最初からTreeSet使ったほうがいいかも。
- HashMap
Map<String,Integer> hm = new HashMap<String,Integer>(); hm.put("C",1); hm.put("B",2); hm.put("E",3); hm.put("A",4); hm.put("D",5); for(String s : hm.keySet()) System.out.print(s+":"+hm.get(s)+" "); hm = new TreeMap<String,Integer>(hm); System.out.println(); for(String s : hm.keySet()) System.out.print(s+":"+hm.get(s)+" ");
出力
D:5 E:3 A:4 B:2 C:1 A:4 B:2 C:1 D:5 E:3
これも最初からTreeMap使ったほうがいいかも。(※HashMapのデータアクセスについて)
拡張for文があるとIteratorを使わなくて良いので楽ですね。
拡張forのメモを兼ねているので上のような出力方法にしていますが、下のようにまとめて書くこともできます。
System.out.println(Arrays.toString(array)); System.out.println(al); System.out.println(set); System.out.println(hm);
出力
[1, 2, 3, 4, 5] [A, B, C, D, E] [1.0, 2.0, 3.0, 4.0, 5.0] {A=4, B=2, C=1, D=5, E=3}