來個大神幫我解決一下
我這個在eclipse在中寫完了沒有報錯但是運行不了
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Maptest {
//創建一個Map來承裝學生對象·
public Map<String,XueSheng>students;
//在構造方法中對students初始化
public void TestMap() {
this.students=new HashMap<String,XueSheng>();
}
//測試添加:輸入學生ID,判斷是否被占用
//若被占用則輸入學生姓名,創建新的學生對象,并添加到students中去
public void testPut() {
//創建一個Scanner學生對象,用來獲取輸入的學生ID和name;
Scanner in=new Scanner(System.in);
String ID=in.next();
int i=0;
while(i<3) {
System.out.println("請輸入學生ID");
String suID=in.next();
//判斷ID是否被占用
XueSheng sc=students.get(suID);
if(sc==null) {
System.out.println("請輸入學生姓名:");
String name=in.next();
//創建新的學生對象
XueSheng newstudten=new XueSheng(ID,name);
//調用students的put方法來,添加ID,映射學生
students.put(ID, newstudten);
System.out.println("成功添加學生"+students.get(ID).name);
i++;
}else {
System.out.println("該學生ID已經被占用");
continue;
}
break;
}
? }
//測試Map中的KeySet的方法
public void testKeySet() {
//通過KeySet方法,返回所以"鍵"的集合
Set<String>keSet=students.keySet();
//取得students中的容量
System.out.println("共添加了"+students.size()+"個學生!");
//通過遍歷KeySet,取得每一個鍵,并且在調用get方法取得每個對應鍵的value
for (String suTD : keSet) {
XueSheng sc=students.get(suTD);
if(sc!=null) {
System.out.println("學生姓名"+sc.name);
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Maptest ys=new Maptest();
ys.TestMap();
ys.testPut();
ys.testKeySet();
}
}
2017-10-18
你的代碼寫錯了,ID沒有用!suID是鍵盤輸入的,你的代碼中的這些
XueSheng newstudten=new XueSheng(ID,name);
//調用students的put方法來,添加ID,映射學生
students.put(ID, newstudten);
System.out.println("成功添加學生"+students.get(ID).name);
標記加粗的ID 應該用suID 來代替
2017-09-26
19行和23行怎么又是ID又是suID的
2017-09-23
public static void main(String[] args) {
// TODO Auto-generated method stub
TestMap();
testPut();
testKeySet();
}
去掉Maptest ys=new Maptest();