我是编程新手。我在尝试对数组元素进行排序时遇到问题。
程序:
for(int i=0;i<num;i++){
System.out.print("Enter product ID: ");
pro[i].product_ID=sc.next();
System.out.print("Enter product name: ");
pro[i].name=sc.next();
System.out.print("Enter price: ");
pro[i].price=sc.nextFloat();
pro[i].discount_price=(float)((pro[i].price)/3);
}
for(int i=0;i<num;i++){
for(int j=0;j<50;j++)
System.out.print("-");
System.out.println("");
System.out.println("Product Details:\n");
System.out.println("Product ID: "+pro[i].product_ID);
System.out.println("Product Name: "+pro[i].name);
System.out.println("MRP Price: Rs "+pro[i].price);
System.out.println("Our price: Rs "+pro[i].discount_price);
}
当我尝试打印时,它以相同的顺序打印而不是根据名称打印。为什么数组中的更改不会被反射回来? 请帮忙.... 提前谢谢!
答案 0 :(得分:1)
要按照名称对产品进行排序,您可以使用
Arrays.sort(pro, new Comparator<Product>() {
@Override
public int compare(Product p1, Product p2) {
return p1.name.compareToIgnoreCase(p2.name);
}
});
(将Product
更改为您用来代表您的产品的任何类别)