【问题标题】:How to do this removal of list in java? [closed]如何在java中删除列表? [关闭]
【发布时间】:2023-03-20 07:45:02
【问题描述】:

我有客户列表说该列表总是有 5 行我必须删除迭代中的最后三行,

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

有什么建议可以做到这一点吗??

【问题讨论】:

  • 您编写的唯一一行代码似乎没有意义。 oh.getCustomer() 会返回一个可迭代的客户集合吗?
  • 你没有告诉客户名单的总数。你能详细说明你的问题吗?

标签: java list


【解决方案1】:

你需要一个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)

【讨论】:

    【解决方案2】:

    有很多方法可以做到这一点。

    很简单,你知道列表是按索引排序的。

    列表总是有 5 行

    你知道列表总是包含 5 个元素。

    那么你不需要使用for循环,创建一个newList并从你的存在列表中获取第一个two元素并将其添加到新创建的列表中。

    List<Customer> customerList = new ArrayList<Customer>();
    
    customerList.add(oldList.get(0))
    
    customerList.add(oldList.get(1))
    

    【讨论】:

      【解决方案3】:

      如果您的oh.getCustomer()java.util.list,您可以尝试以下操作:

      List<Customer> customers = oh.getCustomer();
      customers.subList(2, customers.size()).clear();
      

      【讨论】:

        【解决方案4】:

        你的意思是?

        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();
        

        【讨论】:

          【解决方案5】:
          猜你喜欢
          • 2020-06-24
          • 2014-12-21
          • 2021-03-26
          • 2017-01-29
          • 2021-10-04
          • 1970-01-01
          • 2018-05-16
          • 2018-03-01
          • 1970-01-01
          相关资源
          最近更新 更多