为什么我会收到这个结果?JAVA
我正在学习使用比较器,在执行我的程序时,我在控制台中得到了一个非常奇怪的结果: 我定义了一个名为Zapato的对象,该对象的属性值在向用户请求参数后通过参数传递:为什么我会收到这个结果?JAVA,java,sorting,object,arraylist,comparator,Java,Sorting,Object,Arraylist,Comparator,我正在学习使用比较器,在执行我的程序时,我在控制台中得到了一个非常奇怪的结果: 我定义了一个名为Zapato的对象,该对象的属性值在向用户请求参数后通过参数传递: public class Zapato { int talla; String color; int precio; public Zapato (int talla,String color,int precio){ this.talla = talla; this
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);
}
}
但是当程序打印它们System.out.println(listaZapatos)时,它应该看起来像
45罗莎32,56蓝色21,34佛得角46
但我在控制台上收到了以下信息:
[Main。Zapato@2ff4acd0,Main。Zapato@279f2327,Main。Zapato@54bedef2]
当我每次在System.out.println(“Zapato introcido es:”+listaZapatos.get(2))中请求使用引入的值打印创建的对象时,它也会出现,因此我收到如下内容:
Main。Zapato@2ff4acd0您需要重写Zapato类中的
toString
实现。打印集合时,该方法将在内部对该集合中的每个对象调用toString()
。默认的toString
实现为您提供所需的数据
这样做会有所帮助:
@Override
public String toString()
{
return color + ":" + talla;
}
在你的
Zapato
课上工作得很有魅力!
@Override
public String toString()
{
return color + ":" + talla;
}