0

インデックスからアイテムを削除し、インデックス内の残りのすべてのアイテム番号を 1 減算するメソッドを書き直す必要があります。

上記の条件を含めて、"getLot" を書き直して、ロットの検索にインデックス番号に依存しないようにする必要があります。ロット番号に従ってロットのみを検索する必要があります。したがって、ロット番号 2 が削除された場合、ロット 3 はインデックス 2 からインデックス 1 に移動し、ロット 3 として検出されます。インデックス 2 ではなく、ロット 3 として検出されます。(インデックスは 0 から始まります)

これが私のコードです:

public Lot getLot(int lotNumber)
{
    if((lotNumber >= 1) && (lotNumber < nextLotNumber)) {
        // The number seems to be reasonable.
        Lot selectedLot = lots.get(lotNumber - 1);
        // Include a confidence check to be sure we have the
        // right lot.
        if(selectedLot.getNumber() != lotNumber) {
            System.out.println("Internal error: Lot number " +
                               selectedLot.getNumber() +
                               " was returned instead of " +
                               lotNumber);
            // Don't return an invalid lot.
            selectedLot = null;
        }
        return selectedLot;
    }
    else {
        System.out.println("Lot number: " + lotNumber +
                           " does not exist.");
        return null;
    }
}

ありがとうございました。

4

2 に答える 2

1

commons lang を次の ように使用できますArrayUtils

array = ArrayUtils.removeElement(array, element)

于 2013-03-05T03:46:59.353 に答える
0

あなたには2つのアプローチがあります

アプローチ 1 : Array を使用する代わりに、ArrayList を使用するようにコードを調整できます。

String[] lotArray;
List<String> lotList =  Arrays.asList(lotArray);

lotList.remove("Lot 2");

アプローチ 2 : CommonLangArrayUtils

 array = ArrayUtils.removeElement(array, element)
于 2013-03-05T09:59:39.810 に答える