我怎么排序?

时间:2014-09-02 16:07:17

标签: java windowbuilder

我正在尝试创建一个将接受用户订单的程序。我的问题是我不能按字母顺序对食物进行分类,因为我有3个单独的列表框,第一个列表框用于食物名称,第二个用于食物数量,第三个列表框用于食物价格。我想要的是第二个和第三个列表框跟随第一个列表框,例如,如果列表框包含橙色(2个)(1美元),甜瓜(3个)(2美元),苹果(1个)(4美元)

它看起来如何:

Orange    |    2pcs    |    $1
Melon     |    3pcs    |    $2
Apple     |    1pcs    |    $4

然后按下"排序"按钮我希望它看起来像这样:

Apple     |    1pcs    |    $4
Melon     |    3pcs    |    $2
Orange    |    2pcs    |    $1

排序第一个列表框后,我不知道如何处理第二个和第三个列表框。 我不知道如何使第二个和第三个按照第一个列表框的顺序。

http://postimg.org/image/awxe4pk4t/ 用户将输入食物名称,并在组合框中选择所需的数量。然后在按下添加到购物车按钮后,程序会将输入添加到列表框中,价格将根据用户输入的食物显示在第3个列表框中。此程序中只声明了10种食物类型。 / p>

1 个答案:

答案 0 :(得分:0)

您可以将所有参数放入结构中,如下所示:

public class OrderItem {

    public String foodName;
    public int price;
    public int quantity;

}

使用List<OrderItem>代替三个参数列表;

用它排序:

List<OrderItem> list = new ArrayList<>();
...

Collections.sort(list, new Comparator<OrderItem>() {
    @Override
    public int compare(OrderItem item1, OrderItem item2) {
        return item1.foodName.compareTo(item2.foodName);  
    }

});

之后将params分别放入列表框中;

您还可以为OrderItem字段使用getter和setter,而不是公共字段,但这是最简单的方法。