Head First Java 第2版
頭とからだで覚えるJavaの基本
(オライリージャパン)
Kathy Sierra (著) Bert Bates (著) 島田 秋雄(監修)
神戸 博之 (監修) 高坂 一城 (監修) 夏目 大 (翻訳)
開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Java (プログラミング言語)
- javac (コンパイラ)
- java (application launcher)
Head First Java 第2版 ―頭とからだで覚えるJavaの基本(Kathy Sierra (著)、Bert Bates (著)、島田 秋雄 (監修)、神戸 博之 (監修)、高坂 一城 (監修)、夏目 大 (翻訳)、オライリージャパン)の16章(コレクションとジェネリック型)、自分で考えてみよう(リバースエンジニアリング(p.554))を解いてみる。
自分で考えてみよう(リバースエンジニアリング(p.554))
コード(BBEdit, Emacs)
SortMountains.java
import java.util.*; public class SortMountains { LinkedList<Mountain> mtn = new LinkedList<Mountain>(); class NameCompare implements Comparator<Mountain> { public int compare(Mountain one, Mountain two) { return one.name.compareTo(two.name); } } class HeightCompare implements Comparator<Mountain> { public int compare(Mountain one, Mountain two) { return two.height - one.height; } } public static void main(String [] args) { new SortMountains().go(); } public void go() { mtn.add(new Mountain("Longs", 14255)); mtn.add(new Mountain("Elbert", 14433)); mtn.add(new Mountain("Maroon", 14156)); mtn.add(new Mountain("Castle", 14265)); System.out.println("as entered:\n" + mtn); NameCompare nc = new NameCompare(); Collections.sort(mtn, nc); System.out.println("by name:\n" + mtn); HeightCompare hc = new HeightCompare(); Collections.sort(mtn, hc); System.out.println("by height:\n" + mtn); } } class Mountain { String name; int height; Mountain(String n, int h) { name = n; height = h; } public String toString() { return name + " " + height; } }
入出力結果(Terminal)
$ javac SortMountains.java && java SortMountains as entered: [Longs 14255, Elbert 14433, Maroon 14156, Castle 14265] by name: [Castle 14265, Elbert 14433, Longs 14255, Maroon 14156] by height: [Elbert 14433, Castle 14265, Longs 14255, Maroon 14156] $
0 コメント:
コメントを投稿