-1

我一直在尝试将一个数组拆分为三个不同的数组。

            Player[] arr = Bukkit.getOnlinePlayers();

        int arrl1 = (int) Math.floor(arr.length /3);
        int arrl3 = (int) Math.ceil(arr.length /3);
        int arrl2 = arr.length - (arrl3);



        Player[] arr1 = Arrays.copyOfRange(arr, 0, arrl1);
        Player[] arr2 = Arrays.copyOfRange(arr, arrl1, arrl2);
        Player[] arr3 = Arrays.copyOfRange(arr, arrl2, arrl3);

        int players = arrl1;
        Player[] Array = arr1;

我不知道发生了什么,我不断收到与一个数组(arr1,arr2,arr3)相关的各种错误,但没有收到播放器数组(arr)的正确部分。

假设我有 5 名球员在阵列中,我想把前 2 名球员放在第一个阵列中,把最后 2 个球员放在中间,然后把重命名的第三个放在中间。

非常感谢您的帮助。

4

2 回答 2

2

您的最后一个数组副本是问题所在 - 如果您检查错误消息,您将了解原因。你可能的意思是:

Player[] arr3 = Arrays.copyOfRange(arr, arrl2, arr.length);
于 2012-07-06T15:06:58.650 回答
1

尝试将三个数组中每个数组的长度值打印到控制台。您可能有重叠和/或缺少一两个元素。打印出这些子数组的长度,看看你的错误在哪里!

于 2012-07-06T15:04:35.087 回答