我有客户列表说该列表将始终有 5 行我必须删除迭代中的最后三行,
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)
很多方法可以做到这一点。
很简单,您知道列表是按索引排序的。
列表总是有 5 行
您知道该列表将始终包含 5 个元素。
那么您不需要使用 for 循环,创建一个newList
并从您的存在列表中获取第一个two
元素并将其添加到新创建的列表中。
List<Customer> customerList = new ArrayList<Customer>();
customerList.add(oldList.get(0))
customerList.add(oldList.get(1))
如果您oh.getCustomer()
是 a java.util.list
,您可以尝试以下操作:
List<Customer> customers = oh.getCustomer();
customers.subList(2, customers.size()).clear();
如何获取列表的子集?
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/List.html#subList%28int,%20int%29
高温高压
你的意思是?
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();