-1

配列を 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;

何が起こっているのかわかりません。1 つの配列 (arr1、arr2、arr3) がプレーヤー配列 (arr) の正しい部分を受け取っていないことに関連するあらゆる種類のエラーが発生し続けます。

配列に 5 人のプレイヤーがいるとします。最初の 2 人のプレイヤーを配列 1 に入れ、最後の 2 人を取り、名前を変更する 3 番目を真ん中に置きたいとします。

助けていただければ幸いです。

4

2 に答える 2

2

最後のアレイ コピーが問題です。エラー メッセージを確認すると、その理由がわかります。あなたはおそらく次のことを意味します:

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

3 つの配列のそれぞれの長さの値をコンソールに出力してみてください。1 つまたは 2 つの要素が重複しているか、欠落している可能性があります。これらの部分配列の長さを出力して、エラーの場所を確認してください!

于 2012-07-06T15:04:35.087 に答える