このコードをWebで作成しました。ここで質問してすみませんが、私が理解していないことは 1 つだけです。正確に人口2 -人口1を返すものは何ですか。? 毎回相互に比較して ( o1とo2 )、最終的なスペース (先頭と末尾) なしでコロンの後の部分を取り、数字で並べ替えて、項目を並べ替えます...?
import java.util.Comparator;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) {
PriorityQueue<String> queue = new PriorityQueue<String>(11,
new Comparator<String>() {
public int compare(String o1, String o2) {
int population1 = Integer.parseInt(o1.split(":")[1].trim());
int population2 = Integer.parseInt(o2.split(":")[1].trim());
return population2 - population1;
}
});
queue.add("United States: 307006550");
queue.add("Brazil: 193733800");
queue.offer("Russia: 141850000");
queue.offer("India: 1155347700");
queue.offer("China: 1331460000");
System.out.println("Countries in database: " + queue.size());
while (!queue.isEmpty()) {
System.out.println(queue.poll());
}
System.out.println("Countries in database: " + queue.size());
}
}
たとえば、コードを次のように変更しようとすると:
return population1 - population2;
番号を次のように並べます。
United States: 307006550
Russia: 141850000
Brazil: 193733800
India: 1155347700
China: 1331460000
なんで?