有可能把一个整数数组一分为二,分成两个单独的数组吗


public class War {
public static void main(String args[])
{
ArrayList<Integer> deck = new ArrayList<>(List.of(2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 
5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 
12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14));

// Creates a deck and shuffles it
Collections.shuffle(deck);

System.out.println(deck);

ArrayList<Integer> player1 = new ArrayList<>();
ArrayList<Integer> player2 = new ArrayList<>();

System.out.println(player2);
System.out.println(player1);  
}    
}

这是我的卡牌战争游戏,我想把牌组列表一分为二(2个列表(,然后能够使用这2个列表作为2名玩家的卡牌。

您可以使用subList:

List<Integer> deck1 = deck.subList(0,deck.size()/2);
List<Integer> deck2 = deck.subList(deck.size()/2,deck.size ());

请注意,这些是原始List的视图,因此这些子列表中的更改将反映在原始List中。

如果你想避免这种情况,你可以复制:

List<Integer> deck1 = new ArrayList<>(deck.subList(0,deck.size()/2));
List<Integer> deck2 = new ArrayList<>(deck.subList(deck.size()/2,deck.size ()));

或者,正如Basil所评论的,如果你希望列表是不可变的,请使用:

List<Integer> deck1 = List.of(deck.subList(0,deck.size()/2));
List<Integer> deck2 = List.of(deck.subList(deck.size()/2,deck.size ()));

最新更新