【问题标题】:Execute for- loop only twice只执行两次for循环
【发布时间】:2017-04-26 14:59:52
【问题描述】:

如何只执行两次 for 循环。例如:

for (Product products : productList) {
}

产品列表里面有 3 个项目,所以默认情况下它会循环 3 次。但我只想循环 2 次。

谁能帮我解决一下。

谢谢

【问题讨论】:

  • 我相信你连一点研究都没有。
  • 我做了一些研究,我可以将列表大小限制为 2 ,但它不起作用
  • @StackQuest 定义“没用。”

标签: java for-loop arraylist


【解决方案1】:

对于Java 8+ 用户,limit 可用于此场景。

考虑到您有一个 Product 类:

public class Product {
    
    String name;

    public Product(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }
}

public static void main(String[] args) {
    List<Product> products = new ArrayList<>();
    products.add(new Product("Shoes"));
    products.add(new Product("Shawarma"));
    products.add(new Product("Hummus"));

    products.stream()
            .limit(2)
            .forEach(p -> System.out.println(p.getName())); //Prints out only two products shoes and shawarma
}

【讨论】:

    【解决方案2】:
    for(i=0;i<2;i++){
    //your code for operate with products
    }
    

    【讨论】:

    • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    【解决方案3】:

    您也可以为此使用增量循环;

    for(int i= 0 ; i<productList.length();i++)
    {
      Product products = productList.get(i);
      if (i>1)
       break;
    }
    

    【讨论】:

      【解决方案4】:

      在前两个元素上使用传统的 for 循环,例如

      for (int i = 0; i < 2; i++) {
          Product products = productList.get(i);
          // ...
      }
      

      subList 上使用for-each 喜欢

      for (Product products : productList.subList(0, 2)) {
          // ...
      }
      

      【讨论】: