将插件阵列拆分为2个半部分

时间:2015-02-05 05:39:40

标签: java minecraft bukkit

我使用以下方法获取服务器上的插件数组:

Plugin[] pls = Bukkit.getPluginManager().getPlugins();

我需要将数组拆分为2个半部分。我知道我可以使用以下方法将数组拆分为一半:

Plugin[] hHalf = Arrays.copyOfRange(pls, 0, pls.length/2);

但我怎么得到另一半?

编辑:啊,我现在明白了。谢谢大家!

3 个答案:

答案 0 :(得分:1)

您可以使用:

Arrays.copyOfRange(pls, pls.length / 2, pls.length)

当您调用Arrays.copyOfRange(pls, 0, pls.length/2)时,您将从数组的第一个值(索引0)到中间(索引pls.length / 2)获取所有值。

当调用Arrays.copyOfRange(pls, pls.length / 2, pls.length)时,你将从数组的中间(索引pls.length / 2)得到所有值到最后,有效地得到数组的两半。

例如,如果您想将其拆分为三分之一,则可以使用:

first = Arrays.copyOfRange(pls, 0, pls.length / 3);
second = Arrays.copyOfRange(pls, pls.length / 3, (pls.length / 3) * 2);
third = Arrays.copyOfRange(pls, pls.length / 3, pls.length);

如果长度是奇数(例如,在数组["apples", "oranges", "carrots"]中,您可以使用:

firstHalf = Arrays.copyOfRange(pls, 0, Math.round(pls.length / 2));
secondHalf = Arrays.copyOfRange(pls, Math.round(pls.length / 2), pls.length);

因此,您的代码可能如下所示:

Plugin[] pls = Bukkit.getPluginManager().getPlugins();

Plugin[] firstHalf = Arrays.copyOfRange(pls, 0, Math.round(pls.length / 2));
Plugin[] secondHalf = Arrays.copyOfRange(pls, Math.round(pls.length / 2), pls.length);

答案 1 :(得分:0)

它不是Arrays.copyOfRange(pls, pls.length/2, pls.length)

形式

答案 2 :(得分:0)

你正在通过这个

获得上半场
Plugin[] hHalf = Arrays.copyOfRange(pls, 0, pls.length/2);

所以你也可以这样下半场

Plugin[] hHalf = Arrays.copyOfRange(pls,pls.length/2,pls.length);