Программа Java ArraList: использование Collections.shuffle () внутри цикла - PullRequest
0 голосов
/ 26 октября 2019

Я в своем первом классе Java. Мы только начинаем работать с массивами. Мне дано 9 номеров: 45000,30000,150000,200000,175000,250000,195000,225000,300000. И нужно написать Java-программу, которая разбивает список на 3 группы по 3 числа. Сумма каждой группы должна быть больше 500 000.

Моей первой мыслью было перетасовать массив и проверить, равен ли индекс суммы 0,1,2> 500000 ... индекс суммы 3,4,5> 500000... Индекс суммы 6,7,8> 500000? и зациклите его, пока условие не будет выполнено. Идея «перемешивания» массива привела меня к изучению ArrayList и метода Collections.shuffle ().

Я думаю, что у меня правильный код ArrayList. Программа компилируется. И мои условия пока кажутся правильными, но я получаю вывод менее 500000.

Любое понимание будет оценено.

public static void main (String [] args) {// TODO Autoметод заглушки

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

    }

    }

1 Ответ

0 голосов
/ 26 октября 2019

salesRep3 < 5000000 имеет от 0 до много.

Примечания:

  • Вы можете использовать подчеркивания в своем номере: salesRep3 < 5_000_000.
  • Вы можетеобъявите константу в статической константе, чтобы ваш код мог быть скомпилирован с другими значениями.
...