我使用以下方法获取服务器上的插件数组:
Plugin[] pls = Bukkit.getPluginManager().getPlugins();
我需要将数组拆分为2个半部分。我知道我可以使用以下方法将数组拆分为一半:
Plugin[] hHalf = Arrays.copyOfRange(pls, 0, pls.length/2);
但我怎么得到另一半?
编辑:啊,我现在明白了。谢谢大家!答案 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);