慕姐4925769
2018-11-21 14:55
package Test; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.Set; public class MapTest { // 创建一个承接学生类型对象的Map属性 public Map<String,Student> students; // 构造器中初始化student属性 public MapTest() { this.students = new HashMap<String, Student>(); } /* * 测试添加:输入学生ID,判断是否被占用 * 若未被占用,则输入姓名,创建新学生对象,并且 * 添加到students中 */ public void testPut() { Scanner console = new Scanner(System.in); int i = 0; while (i < 3) { System.out.println("请输入学生ID:"); String ID = console.next(); //判断该ID是否被占用 Student st = students.get(ID); if (st == null){ // 提示输入学生姓名 System.out.println("请输入学生姓名:"); String name = console.next(); //创建新的学生对象newStudent,把ID和name传递进去 Student newStudent = new Student(ID,name); //通过调用students的put方法,添加ID-学生映射 students.put(ID,newStudent); //通过students的get方法取得和ID对应的姓名对象 System.out.println("成功添加学生:"+students.get(ID).getName()); i++; }else { System.out.println("该学生ID已被占用!"); continue; } } } //测试Map的keSet方法 public void testKeySet() { //因为通过泛型规定了键的类型是String,所以要通过泛型为String的Set对象接收keySet方法的返回值 //通过keySet方法,返回Map中的所有“键”的Set集合 Set<String> keySet = students.keySet(); // 取得students的容量 System.out.println("总共有:"+students.size()+"名学生"); // 遍历keySet对象,取得每一个键,在调用gei方法取得每个键对应的value for (String stuId : keySet) { Student st = students.get(stuId); //取值 if (st != null) { System.out.println("学生:"+st.getName()); } } } public static void main(String[] args) { MapTest mt = new MapTest(); mt.testPut(); mt.testKeySet(); } }
我和你一样。用的myeclipse。都是顺序的
巧合,多运行几次
Java入门第三季
409770 学习 · 4388 问题
相似问题