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就会报错,这段代码还有点瑕疵,我还要预习明天内容你就将就着这么看吧,有什么不懂的可以问我,我也一般,咱们互相学习. |