Каков результат выполнения данного кода?
importjava.util.Comparator;importjava.util.TreeSet;publicclassSortedimplements Comparable«Sorted>, Comparator<Sorted> {|
private int num;
private string text;
public Sorted(int num, String text) {
this.num = num;
this.text = text;
}
@Override
public string toString) {
return ''* + num;
@Override
public int compareTo(sorted 0) {
return text.compareTo(o.text):
}
@Override
public int compare(sorted 01, sorted 02) {
return 01.num - 02.num;
}
public static void main(String[] args) {
Sorted s1 = new Sorted(88, "a");
Sorted s2 = new Sorted(55, "b");
Treeset«sorted> t1 = new Treeseto 0:
t1.add(s1);
t1.add (s2);
Treeset‹sorted> †2 = new Treeset∞›(s1);
t2.add(s1);
t2.add(s2);
System.out.printin(t1 + "" + t2);
Другие предметы Колледж Коллекции и их использование в Java Java программирование на Java колледж код Java выполнение кода TreeSet Comparator Comparable результат выполнения обучение Java Новый
Давайте разберем данный код по шагам и поймем, какой результат он выдаст при выполнении.
Сначала мы видим, что в коде есть несколько ошибок, которые необходимо исправить, чтобы он мог успешно компилироваться и выполняться. Вот основные из них:
После исправления ошибок код будет выглядеть следующим образом:
import java.util.Comparator; import java.util.TreeSet; public class Sorted implements Comparable, Comparator { private int num; private String text; public Sorted(int num, String text) { this.num = num; this.text = text; } @Override public String toString() { return "*" + num; } @Override public int compareTo(Sorted o) { return text.compareTo(o.text); } @Override public int compare(Sorted o1, Sorted o2) { return o1.num - o2.num; } public static void main(String[] args) { Sorted s1 = new Sorted(88, "a"); Sorted s2 = new Sorted(55, "b"); TreeSet t1 = new TreeSet<>(); t1.add(s1); t1.add(s2); TreeSet t2 = new TreeSet<>(new Sorted(0, "")); t2.add(s1); t2.add(s2); System.out.println(t1 + " " + t2); } }
Теперь рассмотрим, что происходит в методе main:
Таким образом, при выводе System.out.println(t1 + " " + t2); мы получим строку, которая будет представлять оба TreeSet:
Результат будет примерно таким:
[*88, *55] [*55, *88]
Таким образом, результат выполнения программы будет выводом двух TreeSet, упорядоченных по разным критериям.