2012-07-06 315 views
-1

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

  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名,然后重新命名为第三名。

帮助非常感谢。

+3

请不要调用变量'Array'。如果您有错误,请将它们添加到您的问题中。 – 2012-07-06 15:02:48

+3

我们无法帮助您解决“各种错误” – TeaOverflow 2012-07-06 15:03:06

+1

数组吸吮。使用集合,你会发现生活变得简单很多 – 2012-07-06 15:04:39

回答

1

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

2

你最后一个数组的拷贝是问题 - 如果你检查错误信息,你会看到原因。您可能的意思是:

Player[] arr3 = Arrays.copyOfRange(arr, arrl2, arr.length); 
+0

谢谢,工作。不相信我没有想到这一点。 – AussieBacom 2012-07-06 15:15:48