ArrayList集合程式設計錯題合集
阿新 • • 發佈:2022-05-13
程式設計題目一
訓練目標:掌握Java中List集合的使用,以及理解其在實際開發中的應用
需求背景
需求描述:請設計一個抓鬮遊戲程式,實現5個人的抓鬮,程式的執行效果如下所示:
|
|
| ------------------------------------------------------------ |
實現提示:
1、建立一個集合儲存5個人的名稱
2、建立一個集合儲存5個鬮的內容
3、遍歷名稱的集合,獲取每一個參與人員的名稱
4、生成一個隨機數作為儲存5個鬮的集合的索引,從該集合中隨機獲取一個元素,並且刪除獲取到的元素
5、在控制檯輸出結果
參考程式碼:
public static void main(String[] args) {
ArrayList<String> name = new ArrayList<>();
name.add("郭靖");
name.add("黃蓉");
name.add("黃藥師");
name.add("老頑童");
name.add("瑛姑");
ArrayList<String> jiu = new ArrayList<>();
jiu.add("吃芥末");
jiu.add("學羊叫5聲");
jiu.add("做10個俯臥撐");
jiu.add("喝一杯啤酒");
jiu.add("蛙跳10個");
Random r = new Random();
for (int i = 0; i < name.size(); i++) {//遍歷的次數被名字的長度所控制
System.out.print(name.get(i) + "抓到的鬮為:");//字串拼接
int anInt = r.nextInt(jiu.size());//獲取隨機鬮的次數
System.out.println(jiu.get(anInt));//列印獲取的鬮
jiu.remove(anInt);//每成功迴圈列印一次,我就在迴圈的最後刪掉一個元素
}
}
##
程式設計題目二
訓練目標:掌握Java中List集合的使用,以及理解其在實際開發中的應用
需求背景:"鬥地主"遊戲是大家都比較喜歡的遊戲。遊戲規則:本遊戲為三人遊戲,一副牌54張,每人17張,留3張做底牌,在確定地主之前玩家不能看底牌。確定地主後,地主可獲得3張底牌。
|
|
| ------------------------------------------------------------ |
需求描述:請在素材的程式設計題目二資料夾中的Entry類中指定位置補全相關程式碼,實現鬥地主的發牌以及看牌功能。案例效果如下所示:
實現提示:
1、建立四個List集合物件,分別用來儲存3個玩家的牌以及底牌
2、遍歷牌盒將合適的牌儲存到上述指定的集合中
3、看牌就是對集合的元素進行遍歷
4、數字3很神奇,一個數對3取餘,會有意想不到的效果
參考程式碼:
public static void main(String[] args) {
//建立一個牌盒,也就是定義一個集合物件,用ArrayList集合實現
List<String> broker = new ArrayList<>();
/*往牌盒裡裝牌
* ♦♣♥♠
* */
//定義花色陣列
String[] colors = {"♦", "♣", "♥", "♠"};
//定義點數陣列
String[] numbers = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
//拼接讓每個花色都有13張從2-A的牌
for (String color : colors) {
for (String number : numbers) {
broker.add(color + number);
}
}
//加入大小王
broker.add("小王");
broker.add("大王");
// 洗牌,打亂集合中的元素
Collections.shuffle(broker);
// 補全程式碼
/*
1、建立四個List集合物件,分別用來儲存3個玩家的牌以及底牌
2、遍歷牌盒將合適的牌儲存到上述指定的集合中
3、看牌就是對集合的元素進行遍歷
4、數字3很神奇,一個數對3取餘,會有意想不到的效果
*/
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
for (int i = 0; i < broker.size(); i++) {
String b = broker.get(i);
if (i >= 51) {
dipai.add(b);
} else if (i % 3 == 0) {
player1.add(b);
} else if (i % 3 == 1) {
player2.add(b);
} else if (i % 3 == 2) {
player3.add(b);
}
}
System.out.println("玩家一的牌是:" + player1);
System.