亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請大家幫忙看看,是哪里錯了?

package student;


import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

import java.util.Set;


public class Maptest {

public Map<String,STUDENT> Students;

public Maptest(){

this.Students=new HashMap<String,STUDENT>();

}

public void Testput(){

Scanner console=new Scanner(System.in);

int i=0;

while(i<3){

System.out.println("請輸入學生ID:");

int ID=console.nextInt();

STUDENT ST=Students.get(ID);

if(ST==null){

System.out.println("請輸入學生姓名:");

String name=console.next();

STUDENT newStudent=new STUDENT(ID,name);

Students.put("ID", newStudent);

System.out.println("成功添加學生:"+Students.get(ID).getName());

i++;

}

else{

System.out.println("該ID已被占用!");

continue;

}

}

}

public void Testkeyset(){

Set<String> Keyset=Students.keySet();

System.out.println("總共有:"+Keyset.size());

for(String stuID:Keyset){

STUDENT st=Students.get(stuID);

if(st!=null){

System.out.println("學生:"+st.getName());

}

}

}


public static void main(String[] args) {

// TODO Auto-generated method stub

Maptest mp=new Maptest();

mp.Testput();

mp.Testkeyset();


}


}


正在回答

7 回答

// 創建新的學生對象

Student newStudent = new Student(ID, name);

// 通過調用students的put方法,添加ID-學生映射

students.put(ID, newStudent);

為什么新建的學生對象里面已經有了ID和name 兩個參數了。在put方法里面還要添加ID這個屬性?

1 回復 有任何疑惑可以回復我~

個人感覺得你的問不是很大,你仔細看看 其實你在沒有添加對象的時候就開始從student的對象中取元素了!你再看看TestPut方法中這句STUDENT ST=Students.get(ID)的位置!

0 回復 有任何疑惑可以回復我~

package student;


import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

import java.util.Set;


public class Maptest {

public Map<String,STUDENT> Students;

public Maptest(){

this.Students=new HashMap<String,STUDENT>();

}

public void Testput(){

Scanner console=new Scanner(System.in);

int i=0;

while(i<3){

System.out.println("請輸入學生ID:");

String ID=console.next();

STUDENT ST=Students.get(ID);

if(ST==null){

System.out.println("請輸入學生姓名:");

String name=console.next();

STUDENT newStudent=new STUDENT(ID,name);

Students.put(ID, newStudent);

System.out.println("成功添加學生:"+Students.get(ID).getName());

i++;

}

else{

System.out.println("該ID已被占用!");

continue;

}

}

}

public void Testkeyset(){

Set<String> Keyset=Students.keySet();

System.out.println("總共有:"+Keyset.size());

for(String stuID:Keyset){

STUDENT st=Students.get(stuID);

if(st!=null){

System.out.println("學生:"+st.getName());

}

}

}


public static void main(String[] args) {

Maptest mp=new Maptest();

mp.Testput();

mp.Testkeyset();


}


}


0 回復 有任何疑惑可以回復我~

package student;


import java.util.HashSet;

import java.util.Set;


public class STUDENT {

private String id;

private String name;

public static Set<CLASS> Class;

public String getId(){

return id;

}

public void setId(String id){

this.id=id;

}

public String getName(){

return name;

}

public void setName(String name){

this.name=name;

}

public STUDENT(String id,String name){

this.id=id;

this.name=name;

this.Class=new HashSet<CLASS>();

}


}

STUDENT類

0 回復 有任何疑惑可以回復我~

解決了,,在STUDENT類里的Class加了一個static就解決了,,雖然不知為什么得加static

0 回復 有任何疑惑可以回復我~

System.out.println("成功添加學生:"+Students.get(ID).getName());

0 回復 有任何疑惑可以回復我~

請輸入學生ID:

1

請輸入學生姓名:

小明

Exception in thread "main" java.lang.NullPointerException

at student.Maptest.Testput(Maptest.java:25)

at student.Maptest.main(Maptest.java:49)


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請大家幫忙看看,是哪里錯了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號