0

Collections.sort メソッドを適用して、itemData ArrayList 内の各 grocItem オブジェクトの優先度で配列リストをソートする方法についてのアイデアはありますか?

public class GroceryProgram {

    private final static int GROC_SIZE = 6;
    private final List<ItemData> itemData = new ArrayList<ItemData>();

    private void setUpList() {

        Scanner keyboard = new Scanner(System.in);

        for (int i = 0; i < GROC_SIZE; i++)  {

           System.out.print("\nEnter item name (" + i + ") : ");               
           String name = keyboard.next();

           System.out.print("\nEnter the price of item (" + i + ") : ");
           double cost = keyboard.nextDouble();

           System.out.print("\nEnter Priority Number (" + i + ") : ");
           int priority = keyboard.nextInt();

           ItemData grocItem = new ItemData(name, cost, priority);
           itemData.add(grocItem); // add grocery items to itemData ArrayList

           Collections.sort(grocItem);
           for (Int priority : priority) {
               System.out.println(integer);
4

3 に答える 3

2

sort()コンパレータで呼び出します。たとえば、優先度の昇順の Comparator は次のようになります。

Collections.sort( items, new Comparator<ItemData>() {
    public int compare (ItemData o1, ItemData o2) {
        int comp = o1.getPriority() - o2.getPriority();
        return comp;
    }
});

PS: 'itemData' は不適切な変数名です。リストではなく、単一のアイテムを参照します。「groceryItems」、「stockItems」、または「itemList」の方が適しています。

変数名は、ソフトウェアについて意味のある明確で簡潔な英語で話せるようにする必要があります。

お役に立てれば。

于 2013-07-20T05:20:22.377 に答える