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.565)を解いてみる。
自分で考えてみよう(p.565)
- コンパイルできる。
- 実行した時、TreeSetクラスのインスタンスを作成する際に比較方法が分からずにエラーになる。
- Comparableクラス、compareToメソッドをインプリメントするか、Comparator クラス、compareメソッドをインプリメントしたクラスを作成して、TreeSetクラスのインスタンスを作成する際に引数として渡せばいい。
コード(BBEdit, Emacs)
TestTree.java
import java.util.*; public class TestTree { public static void main (String [] args) { new TestTree().go(); } public void go() { Book1 b1 = new Book1("How Cats Work"); Book1 b2 = new Book1("Remix your Body"); Book1 b3 = new Book1("Finding Emo"); Book2 b4 = new Book2("How Cats Work"); Book2 b5 = new Book2("Remix your Body"); Book2 b6 = new Book2("Finding Emo"); TreeSet<Book1> tree1 = new TreeSet<Book1>(); Book2Compare bc = new Book2Compare(); TreeSet<Book2> tree2 = new TreeSet<Book2>(bc); tree1.add(b1); tree1.add(b2); tree1.add(b3); tree2.add(b4); tree2.add(b5); tree2.add(b6); System.out.println(tree1); System.out.println(tree2); } } class Book1 implements Comparable<Book1> { String title; public Book1(String t) { title = t; } public int compareTo(Book1 b) { return title.compareTo(b.title); } public String toString() { return title; } } class Book2 { String title; public Book2(String t) { title = t; } public String toString() { return title; } } class Book2Compare implements Comparator<Book2> { public int compare(Book2 one, Book2 two) { return one.title.compareTo(two.title); } }
入出力結果(Terminal)
$ javac TestTree.java && java TestTree [Finding Emo, How Cats Work, Remix your Body] [Finding Emo, How Cats Work, Remix your Body] $
0 コメント:
コメントを投稿