我有客户列表说列表总是有5行我必须删除迭代中的最后三行,
for (Customer cust: oh.getCustomer()) {
// Check the size of order and remove the last three rows
}
有任何建议如何做到这一点??
答案 0 :(得分: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)
答案 1 :(得分:0)
如何获取列表的子集?
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/List.html#subList%28int,%20int%29
HTH
答案 2 :(得分: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();
答案 3 :(得分:0)
如果您的oh.getCustomer()
是java.util.list
,则可以尝试以下内容:
List<Customer> customers = oh.getCustomer();
customers.subList(2, customers.size()).clear();
答案 4 :(得分:0)
很多方法都可以做到这一点。
很简单,因为你知道列表是按索引排序的。
列表总是有5行
你知道列表总是包含5个元素。
然后您不需要使用for循环,创建newList
并从您的存在列表中获取第一个two
元素并将其添加到新创建的列表中。
List<Customer> customerList = new ArrayList<Customer>();
customerList.add(oldList.get(0))
customerList.add(oldList.get(1))