我有一副撲克牌1-52的陣列列表,他們正在洗牌,我想基本上將對手的牌分成兩半(0,25)和(26,51),以對付兩名玩家。但我只看到反應,說使用列表<>雖然我想保持每個玩家套牌arraylist不干擾其他已經創建的方法。有沒有辦法讓雙方的隊員都成爲陣列隊員?如何從ArrayList.subList獲取ArrayList?
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(){
}
}
首先,*你得到了什麼*錯誤?其次,就「List」合同而言,您真正需要的只是您的靜態方法中的每一個,而不是「ArrayList」,而不是「列表」。 (不過,它們必須按照現在的方式進行更新)。最終,如果滿足'List'的合同,那麼爲什麼您要關心具體實現是什麼?我之所以這麼說,是因爲你有可能會成爲你會在乎的原因,但這對我來說並不明顯。 –
Makoto
將變量或字段聲明爲'ArrayList'而不是'List'或'Collection'是不好的做法。 – BevynQ
理論上,如果我確實想直接從ArrayList到ArrayList我猜我必須複製並刪除?從25 ++或x ++? – Adamc23