需要有关如何使用其元素对数组进行排序的帮助

时间:2014-01-29 07:21:32

标签: java arrays sorting

我是编程新手。我在尝试对数组元素进行排序时遇到问题。

程序:

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);

}

当我尝试打印时,它以相同的顺序打印而不是根据名称打印。为什么数组中的更改不会被反射回来? 请帮忙.... 提前谢谢!

1 个答案:

答案 0 :(得分:1)

要按照名称对产品进行排序,您可以使用

    Arrays.sort(pro, new Comparator<Product>() {
        @Override
        public int compare(Product p1, Product p2) {
            return p1.name.compareToIgnoreCase(p2.name);
        }
    });

(将Product更改为您用来代表您的产品的任何类别)