打乱一个字符串数组,以便字符串必须完全打乱,而不是在 Java 中的原始索引中

Shuffle an array of strings so that the sting must be completely shuffled and not in its original index in Java

原始数组

Array[]={"Car","Truck","Boat"};

随机数组

Array[]={"Truck","Boat","Car"};

不想半随机播放

喜欢

Array[]={"Truck","Car","Boat"};

Car 和 Truck 被交换但 Boat 没有。

我读到这个叫做数组的 Derangement,但我找不到对字符串有帮助的。

这里有一个解决方案可以使数组发生紊乱 O(n) timeO(1) space 复杂性.

String[] strArray = { "Truck", "Car", "Boat" };

String temp = strArray[0];

for (int i = 0; i < strArray.length - 1; i++) {
    strArray[i] = strArray[i + 1];
}

strArray[strArray.length - 1] = temp;

Arrays.stream(strArray).forEach((e) -> System.out.print(e + " "));

我只是将每个元素都移到了它的左边。

这是输出

Car Boat Truck 

String[] arr = { "Car", "Truck", "Boat" };

    Arrays.sort(arr);

    for (int i = 0; i <= arr.length - 1; i++) {
        System.out.println(arr[i]);
    }