问答详情
源自:7-1 简易扑克牌游戏

这段代码运行后,为什么会出现一个null值呢?

package temp;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class CreatGamers {
	Map gamers;
	List cards;
	CreatGamers(){
		gamers=new HashMap();
		cards=new ArrayList();
	}
	Scanner in=new Scanner(System.in);
	public void Gamers(){
		for(int i=0;i<=1;i++){
			System.out.println("请输入第"+(i+1)+"个玩家ID和姓名");
			System.out.println("输入玩家ID");
			int ID=in.nextInt();
			System.out.println("输入玩家姓名");
			String name=in.next();
			gamers.put(ID, name);
		}
		for(int i=0;i<=1;i++){
		System.out.println("欢迎玩家"+gamers.get(i));
	}
	}
	
}

主函数://调用上面的类方法运行程序

package temp;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CreatGamers a=new CreatGamers();
		a. Gamers();
	}

}


提问者:昵称是JaVa 2017-01-08 02:28

个回答

  • qq_上弦上洛上缘_0
    2017-01-08 20:06:23

    public void TestKeySet(){

    Set<String> keyset=students.keySet();

    for (String string : keyset) {

    Student st=students.get(string);

    if(st!=null){

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

    }

    }

    }

    那就用这个来输出吧。

  • qq_上弦上洛上缘_0
    2017-01-08 19:55:46

      System.out.println("欢迎玩家"+gamers.get(i));变成以下:
      System.out.println("欢迎玩家"+gamers.get(i)name);
    原因是:上面是获取集成员,下面是获取集里面成员具体的属性。