Я изучаю использование компараторов, и я получаю очень странный результат в консоли при выполнении моей программы:Почему я получаю этот результат? JAVA
Я определяю объект под названием Zapato, значения атрибута которого передаются через аргументы после запроса пользователю :
public class Zapato {
int talla;
String color;
int precio;
public Zapato (int talla,String color,int precio){
this.talla = talla;
this.color = color;
this.precio = precio;
}
}
Тогда я создал некоторые компараторы на основе цвета или цены, например.
public class OrdenarPorColor implements Comparator<Zapato>{
@Override
public int compare(Zapato z1, Zapato z2) {
return z1.color.compareTo(z2.color);
}
}
В Main Я прошу значений, создать 3 объекта, и я сохранить их на ArrayList.Then пользователь должен выбрать режим сравнения, и я призываю класс режима сравнения выбранного и после сортировки списка я печатаю его на 3 объекты сортируются:
//Before this there is code repeated where I ask the values for the other 2 objects
System.out.println("Introduzca la talla,el color y la talla de los zapatos: ");
System.out.println("Talla: ");
talla = Integer.parseInt(sc.nextLine());
System.out.println("Color: ");
color = sc.nextLine();
System.out.println("Precio: ");
precio = Integer.parseInt(sc.nextLine());
listaZapatos.add(new Zapato(talla,color,precio));
System.out.println("Zapato introducido es: " + listaZapatos.get(2));
System.out.println("Escriba la opcion para comparar:");
System.out.println("1-Por talla\n2-Por color\3-Por precio");
System.out.println("Opcion: ");
int opcion = sc.nextInt();
switch (opcion){
case 1:
Collections.sort(listaZapatos,new OrdenarPorTalla());
System.out.println(listaZapatos);
break;
case 2:
Collections.sort(listaZapatos,new OrdenarPorColor());
System.out.println(listaZapatos);
break;
case 3:
Collections.sort(listaZapatos,new OrdenarPorPrecio());
System.out.println(listaZapatos);
break;
}
return;
Но когда программа печатает их System.out.println (listaZapatos), оно должно появиться что-то вроде
45 Роза 32,56 Azul 21,34 Verde 46
, но вместо этого я получаю это на консоли:
[[email protected], [email protected], [email protected]]
Также появляется, когда я печатаю объект, созданный с помощью введенных значений каждый раз, когда я прошу их в System.out.println («Zapato introducido эс:» + listaZapatos.get (2)) так что я получать такие вещи:
Работал как шарм! –