-7

私は顧客リストに、リストには常に5行あると言ってもらい、反復の最後の3行を削除する必要があります。

for (Customer cust: oh.getCustomer()) {  
// Check the size of order and remove the last three rows                   
}

これを行う方法について何か提案はありますか??

4

5 に答える 5

2

for次の代わりにループが必要ですforeach

for (int i = 0; i < oh.getCustomer().size(); i++) {
    if (i >= oh.getCustomer().size()-3) {
        break;
    }
}

(またはこのようなもの)

または、この方法を使用して最後の 3 つの項目を削除できます: http://docs.oracle.com/javase/6/docs/api/java/util/List.html#remove(int)

于 2012-08-30T12:05:48.867 に答える
0

リストのサブセットを取得するのはどうですか?

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/List.html#subList%28int,%20int%29

HTH

于 2012-08-30T12:07:26.963 に答える
0

どういう意味ですか?

List<Customer> customers = oh.getCustomer();
for(int i = -1; i >= -3 && customer.size()>0;i--)
    oh.removeCustomer(customers.get(customer.size() - i));

顧客が変更可能である場合(実際には変更できないはずです)、これを行うことができます。

customers.subList(Math.max(0, customers.size()-3), customers.size()).clear();
于 2012-08-30T12:08:01.190 に答える
0

あなたoh.getCustomer()が の場合は、次のjava.util.listようなものを試すことができます。

List<Customer> customers = oh.getCustomer();
customers.subList(2, customers.size()).clear();
于 2012-08-30T12:09:49.037 に答える
0

これを行う多くの方法。

リストがインデックス順であることを知っているので簡単です。

リストには常に 5 行あります

リストには常に 5 つの要素が含まれることがわかります。

次に、 for ループを使用する必要はありません。存在リストからnewList最初のtwo要素を作成して取得し、新しく作成したリストに追加します。

List<Customer> customerList = new ArrayList<Customer>();

customerList.add(oldList.get(0))

customerList.add(oldList.get(1))
于 2012-08-30T12:15:36.957 に答える