私は顧客リストに、リストには常に5行あると言ってもらい、反復の最後の3行を削除する必要があります。
for (Customer cust: oh.getCustomer()) {
// Check the size of order and remove the last three rows
}
これを行う方法について何か提案はありますか??
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)
リストのサブセットを取得するのはどうですか?
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/List.html#subList%28int,%20int%29
HTH
どういう意味ですか?
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();
あなたoh.getCustomer()
が の場合は、次のjava.util.list
ようなものを試すことができます。
List<Customer> customers = oh.getCustomer();
customers.subList(2, customers.size()).clear();
これを行う多くの方法。
リストがインデックス順であることを知っているので簡単です。
リストには常に 5 行あります
リストには常に 5 つの要素が含まれることがわかります。
次に、 for ループを使用する必要はありません。存在リストからnewList
最初のtwo
要素を作成して取得し、新しく作成したリストに追加します。
List<Customer> customerList = new ArrayList<Customer>();
customerList.add(oldList.get(0))
customerList.add(oldList.get(1))