ArrayList集合编程错题合集
编程题目一
训练目标:掌握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.