1. 程式人生 > 其它 >ArrayList集合程式設計錯題合集

ArrayList集合程式設計錯題合集

程式設計題目一

訓練目標:掌握Java中List集合的使用,以及理解其在實際開發中的應用

需求背景:"抓鬮"是指每人從預先做好記號的紙卷或紙團中摸取一個,以決定做什麼。比如:學羊叫5聲、蛙跳10個、吃芥末、喝一杯啤酒、做10個俯臥撐等。

需求描述:請設計一個抓鬮遊戲程式,實現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.