日期:2014-05-20  浏览次数:20937 次

求解MAP比较
做了一个注册和登录的。

注册放到MAP,登录的时候进行比较。

大意如下:

Java code

/*
 * ID类,[抽象类]
 */

//省略部分代码

private String user ;
private String password;

//set,get的省略

Map <Object,Object> idinput = new HashMap();






Java code


/*
 *Regigster类,继承Id
 */

//省略部分代码

System.out.println ("输入用户名:")
setUser(sc.next);
System.out.println ("输入密码:")
setPassword(sc.next);
//用户名及密码的验证
idinput.put(getUser(),getPassword());//存入MAP



Java code

/*
 *Login类,继承ID
 */

//用了很多方法没弄好,请提示下这该怎么写。。只实现验证新输入的用户名和密码是否在MAP里面有相对的

//自己这么写的

if(getUser().equals(idinput.get(o)));

//别的不知道了,求指导。。




------解决方案--------------------
if (idinput.containsKey(getUser()) && getPassword().equals(idinput.get(getUser()))) {
...
}
------解决方案--------------------
楼主这种的话,就根据key(也就是用户id),取出对应的value,看是不是输入的password,如果是就说明匹配到了。

------解决方案--------------------
你的main方法怎么调用的?
Register和Login是两个不同的类,如果你new了两个对象,那么idinput就是不同对象里的map,里面的信息是不一样的
最简单的方法就是LZ把Id类的
Map <Object,Object> idinput = new HashMap(); //定义用户名,密码的输入
改成
static Map <Object,Object> idinput = new HashMap(); //定义用户名,密码的输入
这样Register和Login就能共享这个map了