ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

ArrayList集合编程错题合集

2022-05-13 15:34:42  阅读:158  来源: 互联网

标签:ArrayList System 错题 add println new 合集 out


编程题目一

训练目标:掌握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.out.println("玩家二的牌是:" + player2);
       System.out.println("玩家三的牌是:" + player3);
       System.out.println("底牌是:" + dipai);

  }

##

编程题目三

请定义一个Collection类型的集合,存储以下字符串: “JavaEE企业级开发指南”,”Oracle高级编程”,”MySQL从入门到精通”,”Java架构师之路” 要求: 请编程实现以下功能: 使用迭代器遍历所有元素,并打印 使用迭代器遍历所有元素,筛选书名小于10个字符的,并打印; 使用迭代器遍历所有元素,筛选书名中包含“Java”的,并打印 如果书名中包含“Oracle”,则删掉此书。删掉后,遍历集合,打印所有书名。 (注意:以上每个功能都单独写个方法,在main方法中逐个调用测试即可)

效果:

参考代码:

 public static void main(String[] args) {
       Collection<String> collection = new ArrayList<>();
       collection.add("JavaEE企业级开发指南");
       collection.add("Oracle高级编程");
       collection.add("MySQL从入门到精通");
       collection.add("Java架构师之路");

       Iterator<String> iterator = collection.iterator();
       System.out.println("---所有元素如下---");
       while (iterator.hasNext()) {
           System.out.println(iterator.next());
      }

       System.out.println("---书名小于10个字符的元素如下---");
       while (iterator.hasNext()) {
           String s = iterator.next();
           if (s.length() < 10) {
               System.out.println(s);
          }
      }

       System.out.println("---书名中包含”Java“的元素如下---");
       while (iterator.hasNext()) {
           String s1 = iterator.next();
           if (s1.contains("Java")) {
               System.out.println(s1);
          }
      }

       System.out.println("---删除”oracle“的元素如下---");
       while (iterator.hasNext()) {
           String s2 = iterator.next();
           if (s2.contains("Oracle")) {
               iterator.remove();
          }
      }
       System.out.println(collection);
  }

编程题目四

请定义一个Collection类型的集合,存储以下分数信息: 88.5,39.2,77.1,56.8,89.0,99.0,59.5

要求:

请编程实现以下功能: 使用增强for遍历所有元素,并打印 使用增强for遍历所有元素,打印不及格的分数; 使用增强for遍历所有元素,计算不及格的分数的数量,和平均分,并打印计算结果。 使用增强for遍历所有元素,求出最高分,并打印;

效果:

参考代码:

public static void main(String[] args) {
       Collection<Double> collection = new ArrayList<>();
       collection.add(88.5);
       collection.add(39.2);
       collection.add(77.1);
       collection.add(56.8);
       collection.add(89.0);
       collection.add(99.0);
       collection.add(59.5);

       int count = 0;
       int sum = 0;

       System.out.println("使用增强for遍历所有元素,并打印如下:");
       for (Double a : collection) {
           System.out.println(a);
      }

       System.out.println("使用增强for遍历所有元素,打印不及格的分数如下:");
       for (Double a : collection) {
           if (a < 60) {
               System.out.println(a);
               count++;
               sum += a;
          }
      }
       int avg = sum / count;
       System.out.println("不及格的分数有:" + count + "个,不及格的人的平均分是:" + avg);

       double max = Double.MIN_VALUE;
       for (Double a : collection) {
           if (max < a) {
               max = a;
          }
      }
       System.out.println("集合中的最大值是:" + max);
  }

编程题目五

请定义方法找出集合中所有姓张的人并且年龄大于18岁的并全部返回,然后在main方法中输出返回的人; 集合原始数据有: 张三,22 李四,26 张翠山,38 赵六,19 张三丰,103 张无忌,17 赵敏,16

要求:

集合中的人需要以对象的形式存在,人只要有姓名和年龄两个成员变量即可;

注意:仔细思考一下自定义的方法要不要设计参数和返回值;

效果:

参考代码:

  public static void main(String[] args) {
       Student stu = new Student();
       Student s1 = new Student("张三", 22);
       Student s2 = new Student("李四", 26);
       Student s3 = new Student("张翠山", 38);
       Student s4 = new Student("赵六", 19);
       Student s5 = new Student("张三丰", 103);
       Student s6 = new Student("张无忌", 17);
       Student s7 = new Student("赵敏", 16);
       ArrayList<Student> list = new ArrayList<>();
       list.add(s1);
       list.add(s2);
       list.add(s3);
       list.add(s4);
       list.add(s5);
       list.add(s6);
       list.add(s7);

       searchZhangAge(list);


  }

   private static void searchZhangAge(ArrayList<Student> list) {
       for (Student stu : list) {
           if (stu.getName().contains("张") && stu.getAge() > 18) {
               System.out.println(stu);
          }
      }
  }
 

 

标签:ArrayList,System,错题,add,println,new,合集,out
来源: https://www.cnblogs.com/aginbak/p/16266823.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有