java
1import java.util.LinkedList; 2 3class Book implements Comparable<Book> { 4 String title; 5 String author; 6 int price; 7 8 Book(String t, String a, int p) { 9 this.title = t; 10 this.author = a; 11 this.price = p; 12 } 13 14 public int compareTo(Book b) { 15 return this.price - b.price;//ここです。 16 } 17 18} 19 20class Sample { 21 public static void main(String[] args) { 22 LinkedList<Book> list = new LinkedList<Book>(); 23 Book b1 = new Book("大いなる助走","筒井康隆",1200); 24 Book b2 = new Book("きれぎれ","町田康",455); 25 Book b3 = new Book("やさしいjava","高橋麻奈",2600); 26 Book b4 = new Book("坊ちゃん","夏目漱石",500); 27 28 list.add(b1); 29 list.add(b2); 30 list.add(b3); 31 list.add(b4); 32 java.util.Collections.sort(list); 33 34 for(Book b:list){ 35 System.out.println(b.title); 36 } 37 //実行結果:値段が安い順に本のタイトルが表示される。 38 39 } 40 41} 42 43```compareToメソッドは「ソートする際のキーを定義する」という認識なのですが、コメントで記した部分が具体的にどういう処理をしているのかがわかりません。ここにおける「this」とは何を指しているのでしょうか。また、二つのオブジェクトの値段の差を返しているのですが、この差は何に使われているのでしょうか。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。