A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.io.File;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. import java.util.HashMap;
  5. import java.util.Random;
  6. import java.util.Scanner;
  7. import java.util.Set;

  8. /* 定义一个String数组str[]={“橙汁”,”雪碧”,”啤酒”,”二锅头”}用来代表喝的饮料
  9. 创建3个Student对象,从控制台获取属性值,
  10. 输入格式为:姓名,年龄。
  11. (利用有参构造赋值),将这3个对象存入到Map集合中(map<学生,要喝的饮料>),其中key是Student对象,
  12. 对应的value值需要随机(random)从str数组中获取,
  13. *
  14. * (如果Student对象的年龄不满18岁则不能喝酒,
  15. 如果获取到白酒或者啤酒则必须继续获取,直到获取到其它饮料为止)
  16. 将map中,所有信息写到当前项目Student_info.txt下
  17. *
  18. * */
  19. public class Test {
  20.         public static void main(String[] args) throws IOException {
  21.                 // 定义字符串数组
  22.                 String[] str = { "橙汁", "雪碧", "啤酒", "二锅头" };
  23.                 Scanner sc = new Scanner(System.in);
  24.                 Random rd = new Random();
  25.                 // 创建学生对象
  26.                  System.out.println("请输入姓名和年龄");
  27.                  Student s1 = new Student(sc.nextLine(), sc.nextInt());
  28.                  System.out.println("请输入姓名和年龄");
  29.                  Student s2 = new Student(sc.next(), sc.nextInt());
  30.                  System.out.println("请输入姓名和年龄");
  31.                  Student s3 = new Student(sc.next(), sc.nextInt());
  32.                 // System.out.println(s1);
  33.                 HashMap<Student, String> hm = new HashMap<>();
  34.                 hm.put(s1, str[rd.nextInt(3)]);
  35.                 hm.put(s2, str[rd.nextInt(3)]);
  36.                 hm.put(s3, str[rd.nextInt(3)]);
  37.                 System.out.println(hm);
  38.                 Set<Student> set = hm.keySet();
  39.                 int count=0;
  40.                 String[] stringWriter = new String[3];
  41.                 for (Student s : set) {
  42.                         if (s.getAge() < 18)
  43.                                 while (hm.get(s).equals("啤酒") || hm.get(s).equals("二锅头")) {
  44.                                         hm.put(s, str[rd.nextInt(3)]);
  45.                                         System.out.println(hm);
  46.                                 }
  47.                         stringWriter[count]="学生的名字是:"+s.getName()+"  学生的年龄是:"+s.getAge()+" 学生爱喝的饮料是:"+hm.get(s);
  48.             count++;
  49.                 }
  50.                 char[] arr=(stringWriter[0]+stringWriter[1]+stringWriter[2]).toCharArray();
  51.        FileWriter fw=new FileWriter(new File("Student_info.txt"));
  52.        fw.write(arr);
  53.        fw.close();
  54.         }

  55. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马