将插件数组分成两半

Split plugin array into 2 halfs

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

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

我需要将数组分成两半。我知道我可以使用以下方法将数组分成两半:

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

但是我如何获得另一半呢?

编辑:嗯,我明白了。谢谢大家!

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

的形式

您可以使用:

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 部分

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

所以下半场你也可以这样

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