Как получить ArrayList из ArrayList.subList?

1

У меня есть арраилист колоды карт 1-52, и они перетасовываются, и я бы хотел разделить колоду пополам (0,25) и (26,51) на двух игроков. Но я вижу только ответы, которые используют List <>, хотя я бы хотел, чтобы каждый игровой колодец был арраистом, чтобы не мешать другим уже созданным методам. Есть ли способ держать обе игровые колоды в качестве арраистов?

import java.util.ArrayList;
import java.util.Collections;
public class Methods {
    public static ArrayList<Integer> deck =  new ArrayList<Integer>();
    public static ArrayList<Integer> deckPlayerOne =  new ArrayList<Integer>();
    public static ArrayList<Integer> deckPLayerTwo =  new ArrayList<Integer>();
    public static ArrayList<Integer> generateDeck(){
        for(int i=1; i<53; i++){
             deck.add(i);
        }
        return deck;
    }

    public static ArrayList<Integer> shuffle(){
        Collections.shuffle(deck);
        return deck;
    }

    public static void splitDeck(){
        // deckPlayerOne = deck.subList(0, 25); <---- location of error
    }

    public static ArrayList<Integer> playerOneDeck(){

        }

    }

    public static ArrayList<Integer> platerTwoDeck(){

    }
}
Теги:
arraylist
sublist

1 ответ

4
Лучший ответ

Возможно, я не понял ваш вопрос, но если вы хотите, чтобы ArrayList был разделен на два других, вы можете использовать это:

    ArrayList myArrayList = new ArrayList();
    ArrayList part1 = new ArrayList(myArrayList.subList(0, 25));
    ArrayList part2 = new ArrayList(myArrayList.subList(26, 51));

Это то, что вы хотите?

  • 0
    Мне либо говорят разыграть колоду, либо меняем deckPlayerOne на List <>
  • 0
    Хорошо, кажется, это самый идеальный ответ, спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню