Каков результат выполнения данного кода?
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);
Другие предметыКолледжКоллекции и их использование в JavaJavaпрограммирование на Javaколледжкод Javaвыполнение кодаTreeSetComparatorComparableрезультат выполненияобучение 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, упорядоченных по разным критериям.