Java程序ArrayList:在循环中使用Collections.shuffle()。

问题描述 投票:-1回答:1

我正在上我的第一个java课。 我们刚开始使用数组。 我得到了9个数字。45000,30000,150000,200000,175000,250000,195000,225000,300000. 并需要写一个java程序,将列表分解成3组3个数字。 每组之和必须大于500000。

我首先想到的是对数组进行洗牌,然后测试index 0,1,2 >500000......sum Index 3,4,5 >500000......sum Index 6,7,8 >500000? 循环,直到满足条件。 "洗牌 "数组的想法让我研究了ArrayList和Collections.shuffle()方法。

我认为我的ArrayList代码是正确的。 程序可以编译。 而且我的while条件似乎是正确的,但我得到的输出小于500000。

如果有任何见解,我将感激不尽。

public static void main(String[] args) { / TODO 自动生成的方法存根。

    ArrayList<Integer> productPrices = new ArrayList<Integer>();

    productPrices.add(45000);
    productPrices.add(30000);
    productPrices.add(150000);
    productPrices.add(200000);
    productPrices.add(175000);
    productPrices.add(250000);
    productPrices.add(195000);
    productPrices.add(225000);
    productPrices.add(300000);



    List<Integer> prices = Arrays.asList(45000,30000,150000,200000,175000,250000,195000,225000,300000);
    int salesRep2 = 0;
    int salesRep3 = 0;
    int salesRep4 = 0;



    do 
    {   
    Collections.shuffle(prices);

    salesRep2 = prices.get(0) + prices.get(1) + prices.get(2);
    salesRep3 = prices.get(3) + prices.get(4) + prices.get(5);
    salesRep4 = prices.get(6) + prices.get(7) + prices.get(8);


    }while((salesRep2 < 500000) && (salesRep3 < 5000000) && (salesRep4 < 500000));


    System.out.println(salesRep2);
    System.out.println(salesRep3);
    System.out.println(salesRep4);

    }

    }
java arrays loops arraylist do-while
1个回答
0
投票

salesRep3 < 5000000 有一个0到多。

注意事项。

  • 你可以在数字中使用下划线。salesRep3 < 5_000_000.
  • 你可以在静态常量中声明该常量,这样你的代码就可以用其他值来编译。
© www.soinside.com 2019 - 2024. All rights reserved.