? 為什么我打印出來(lái)的順序是一樣的????
請(qǐng)輸入學(xué)生ID: 1 請(qǐng)輸入學(xué)生姓名: Tom 成功添加學(xué)生:Tom 請(qǐng)輸入學(xué)生ID: 1 該學(xué)生id已存在! 請(qǐng)輸入學(xué)生ID: 2 請(qǐng)輸入學(xué)生姓名: Jack 成功添加學(xué)生:Jack 請(qǐng)輸入學(xué)生ID: 3 請(qǐng)輸入學(xué)生姓名: xiaoming 成功添加學(xué)生:xiaoming 總共有:3個(gè)學(xué)生 學(xué)生:Tom 學(xué)生:Jack 學(xué)生:xiaoming?
2017-11-30
你把while(i<3)里的數(shù)字3改大一點(diǎn)然后在執(zhí)行程序輸出看看就不一定了。
2017-11-17
public Map<String,Student> students;
public MapTest() {
// TODO Auto-generated constructor stub
students = new HashMap<>();
}
/**
* 添加,輸入學(xué)生id,判斷是否存在
* 若不存在,則輸入姓名,創(chuàng)建新學(xué)生對(duì)象,并添加進(jìn)去
* @param args
*/
public void testPut(){
//創(chuàng)建一個(gè)Scanner對(duì)象,用來(lái)獲取輸入的學(xué)生ID和姓名
Scanner scanner = new Scanner(System.in);
int i = 0;
while(i<3){
System.out.println("請(qǐng)輸入學(xué)生ID:");
String id = scanner.next();
//判斷該ID是否已存在
Student st = students.get(id);
if(st == null){
//為空不存在該ID的學(xué)生信息,輸入學(xué)生姓名,創(chuàng)建一個(gè)新的學(xué)生對(duì)象,添加到map
System.out.println("請(qǐng)輸入學(xué)生姓名:");
String name = scanner.next();
//創(chuàng)建學(xué)生實(shí)例
Student newStudent = new Student();
newStudent.setId(id);
newStudent.setName(name);
students.put(id, newStudent);
System.out.println("成功添加學(xué)生:"+students.get(id).getName());
i++;
}else{
System.out.println("該學(xué)生id已存在!");
continue;
}
}
}
/**
* 測(cè)試Map的keyset方法
* @param args
*/
public void testKeySet(){
//通過(guò)keyset方法,返回map中所有鍵的值
Set<String> keyset = students.keySet();
System.out.println("總共有:"+students.size()+"個(gè)學(xué)生");
//遍歷keyset,取得每個(gè)key的值,再調(diào)用get方法取得key對(duì)應(yīng)的value
for (String string : keyset) {
Student stu = students.get(string);
if(stu!=null){
System.out.println("學(xué)生:"+stu.getName());
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest test = new MapTest();
test.testPut();
test.testKeySet();
}
2017-11-16
代碼貼出來(lái)