public void createPlayer() {
System.out.println("------------------创建玩家---------------------");
Integer id;
String name;
int i=0;
for(int j=0;j<2;j++) {
while(true) {
try{
System.out.println("请输入第"+(i+1)+"个玩家的id:");
id=dllx.nextInt();
if(player.contains(new Players(id,null))){
System.out.println("你输入的id已被使用!请重新输入!");
continue;
}
break;
} catch (Exception e) {
System.out.println("你的输入有误,请重新输入!");
dllx=new Scanner(System.in);
continue;
}
}
while(true){
System.out.println("请输入第"+(i+1)+"个玩家的姓名:");
name =dllx.next();
if(player.contains(new Players(id,name))) {
System.out.println("你输入的名字已被使用!请重新输入!");
continue;
}
break;
}
player.add( new Players(id,name));
i++;
}
}
简单看了一下,还没调试,在分别判断名字或者id的时候,比较一个对象就可以了, 你方法中好像是传入了2个对象。。。
if(player.contains(new Players(id,null))){
System.out.println("你输入的id已被使用!请重新输入!");
continue;
你仔细梳理下这个逻辑。。。
你说不会提示用户名相同的话,那就是 contains()方法有问题吧。 你仔细调试下。。。