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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

键盘录入姓名和年龄存储ArrayList中
如果用户输出over,结束输入,迭代ArrayList

class Person{
   name;
   age;
   构造器,get set
}


   ArrayList<Person> array = new ArrayList<Person>()
   Scanner sc = XXX
   String s=  sc.nextLine()    lisi 30
    if("over".equals(s))
          break;
    空格切割字符串
    array.add(new Person(lisi,30))

   Iterator it = XXX.iterator();

4 个回复

倒序浏览
666666666666
回复 使用道具 举报
没人回答啊
回复 使用道具 举报
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;

public class Person {
        public static void main(String[] args) {
               
                System.out.println("键盘录入开始");
                for (int i = 0; i < 5; i++) {
                        // 实现键盘录入
                        Scanner sc = new Scanner(System.in);
                        System.out.println("请输入第" + (i + 1) + "个学生的名字");
                        String name = sc.nextLine();
                        if("over".equals(name)){
                                System.out.println("录入终止");
                                break;
                        }
                        System.out.println("请输入第" + (i + 1) + "个学生的年龄");
                        int age = sc.nextInt();
                        // 创建集合对象
                        HashMap<String, Integer> map = new HashMap<String, Integer>();

                        // 储存到集合中
                        map.put(name, age);
                        // 遍历集合
                        // 方式1
                        Set<String> set = map.keySet();
                        // 增强for循环
                        for (String s : set) {
                                int age1 = map.get(s);
                                System.out.println("学生姓名:" + name + "学生年龄:" + age1);
                        }
                        System.out.println("***************************");
                        // 方式2
                        Set<Entry<String, Integer>> eset = map.entrySet();
                        // 增强for循环获取键值对
                        for (Entry<String, Integer> es : eset) {
                                System.out.println("学生姓名:" + es.getKey() + "学生年龄:"
                                                + es.getValue());
                        }

                }
        }
}
这是我写的代码,首先ArrayList不能存两个有映射关系的参数,所以用ArrayList存储年龄和姓名是不行的,还有over应该是针对名字来说的,输入年龄时不能写over,因为over不是int类型,会报错,还有注意一点,因为先写String后写int没事,但是先写int后写String就会报错,这段代码还有点瑕疵,我还要预习明天内容你就将就着这么看吧,有什么不懂的可以问我,我也一般,咱们互相学习.
回复 使用道具 举报
3楼正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马