0

arlist=[1,2,3,1,4,7,1,5,9] を含む arraylist を使用しています

今、私はこの種の出力 winningChance=[[1,2,3],[1,4,7],[1,5,9]] を探しています。つまり、3 つの要素グループに分けて保存する必要があります。それは別の配列リストにあります。そのために、次のようにコーディングしました。

int size=arlist.size();
for(int i=size-1;i>=0;i--){
winningChance.add(arlist.remove(i));
System.out.println(arlist);
System.out.println(winningChance);

このコードでは、出力を [[1,2,3]] として取得しています。希望の出力を得るために誰かが私に提案できますか?

4

4 に答える 4

0

おそらく、モジュロ演算子 ( %)を使用する必要があります。次に例を示します。

final int elementsPerGroup = 3;

// your init list
List<Integer> list = Arrays.asList(1, 2, 3, 1, 4, 7, 1, 5, 9);

// the final list of lists
List<List<Integer>> listOfLists = new ArrayList<List<Integer>>();

// logic
for (int i = 0; i < list.size(); i++) {
    List<Integer> sublist;
    if (i % elementsPerGroup == 0) {
        sublist = new ArrayList<Integer>();
        listOfLists.add(sublist);
    } else {
        sublist = listOfLists.get(listOfLists.size() - 1);
    }
    sublist.add(list.get(i));
}

リストの最終リストは と等しくなり[[1, 2, 3], [1, 4, 7], [1, 5, 9]]ます。

于 2013-06-18T07:46:55.917 に答える
0

ロジックを変更してsubList()メソッドを使用する

指定された fromIndex (これを含む) と toIndex (これを含まない) の間のこのリストの部分のビューを返します。(fromIndex と toIndex が等しい場合、返されるリストは空です。)

元:list.subList(from, to).clear();

于 2013-06-18T07:39:56.030 に答える