Java置换分配

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

主类:

import java.util.List;
import java.util.Random;

public class PermutationGenerator{

    public static void main(String[] args) {
        Random bruh = new Random();

        List<Integer> filledArray = nextPermutation.fillArray();

        int[] randomArray = new int[10];
        for (int i = 0; i < randomArray.length; i++) {
            int randomPosition = bruh.nextInt(10 - i) + 1;
            randomArray[i] = filledArray.get(randomPosition);
            filledArray.remove(randomPosition);
        }

        System.out.print("List 1: ");
        printArray(randomArray);

    }

        public static void printArray(int[] array) {

        for (int i = 0; i < array.length; i++) {

            System.out.print(array[i] + " ");
        }


        System.out.println();
    }
}

赛跑者类:`import java.util.ArrayList;

公共类nextPermutation {

public static ArrayList<Integer> fillArray() {
        ArrayList<Integer> randomArray = new ArrayList<Integer>();


        randomArray.add(0);
        randomArray.add(1);
        randomArray.add(2);
        randomArray.add(3);
        randomArray.add(4);
        randomArray.add(5);
        randomArray.add(6);
        randomArray.add(7);
        randomArray.add(8);
        randomArray.add(9);
        randomArray.add(10);



        return randomArray;

    }

}`

我应该打印出类似这样的内容:

清单1:4 6 8 1 9 7 10 5 3 2

清单2:6 8 1 7 3 4 9 10 5 2

清单3:2 4 9 6 8 1 10 5 7 3

清单4:8 5 4 3 2 9 6 7 1 10

清单5:10 3 2 6 8 9 5 7 4 1

清单6:9 10 3 2 1 5 6 8 4 7

清单7:3 8 5 9 4 2 10 1 6 7

清单8:3 2 4 5 7 6 9 8 10 1

清单9:4 1 5 10 8 3 6 2 7 9

清单10:3 5 2 4 1 7 9 6 8 10

但是对我来说,它只打印出一行。我想我可以使用for循环来做到这一点。另外,我也可以蛮力,但我更喜欢前者。

我需要帮助的地方是如何开始for循环。

任何帮助将不胜感激。

java arrays for-loop permutation
1个回答
0
投票

您可以将整个代码包装成一个循环

    List<Integer> filledArray = nextPermutation.fillArray();

    int[] randomArray = new int[10];
    for (int i = 0; i < randomArray.length; i++) {
        int randomPosition = bruh.nextInt(10 - i) + 1;
        randomArray[i] = filledArray.get(randomPosition);
        filledArray.remove(randomPosition);
    }

    System.out.print("List 1: ");
    printArray(randomArray);

甚至最好将其移至新方法

© www.soinside.com 2019 - 2024. All rights reserved.