Java Silver黒本、APIについての問題に関して、ご指導いただけますと幸いです。

前提

Java Silver資格の勉強中の者です。

黒本の問題を解いておりますが
理解できなかったのでこちらで質問させていただきます。

お手数ではございますが、ご教示いただけますと幸いです。

質問内容、不明点

本設問について、解説を読んでも全く理解できませんでした。
そのため質問の仕様がない為、問題に取り組んだ過程を記載させていただきます。
(どこが間違っているかわからない為)

間違っている点はもちろん、そもそも考え方がおかしい、などのご指摘も
大変勉強になりますので、遠慮なく指摘していただけますと幸いです。

~思考~ コードに紐づいてます。
①Sample型の配列 samples を宣言。
②Sample型のインスタンスを3つ生成
③List<Sample>型 list に、配列samplesを格納したArrayListを生成
④sortメソッドの引数(new SampleComparator)が何を言っているか、理解できてません。
このあと、SampleComparator.java内のcompareメソッドを見ますが
Sample s1,Sample s2がどれのことを指しているのか、わかっていません。

問題文とコード

問題文
次のプログラムをコンパイル、実行したときの結果として、
正しいものを選べ。

Sample.java

public class Sample { private int id; private String name; public Sample (int id, String name) { super(); this.id = id; this.name = name; } public int getId() { return id; } public String getName() { return name; } }

SampleComparator.java

import java.util.Comparator; public class SampleComparator implements Comparator<Sample>{ @Override public int compare (Sample s1, Sample s2) { if (s1.getId() < s2.getId()) { return 1; } if (s2.getId() < s1.getId()) { return -1; } return 0; } }

Main.java

import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { Sample[] samples = { //思考1 new Sample(2, "B"), new Sample(3, "C"), new Sample(1, "A") //思考2 }; List<Sample> list = new ArrayList<Sample>(Arrays.asList(samples)); //思考3 list.sort(new SampleComparator()); //思考4 for (Sample s : list) { System.out.println(s.getName()); } } }

ご指導のほど、よろしくお願いします。

コメントを投稿

0 コメント