java我是初学者,登录,注册两个类,用集合的泛型存注册的数据(姓名,密码),登录的时候怎么做啊?

跪求各位大侠,最开始我让注册返回集合,不行后来又把集合声明为static类属性,再在登录里注册。集合还是不行啊……在线等,睡不着

你这要做的是一个模拟登录,注册,那么首先需要1个静态的容器,也就是存数据的地方,
建议单独建一个类,Data
里边一个静态变量
public static HashMap<String,User> users = new HashMap<String,User>();//Key为用户的名称,不能重复,User为用户对象,里边可以添加你需要模拟的属性
思路:
注册的时候,首先根据用户输入的用户名在users里去找有没有重复的Key,users.containsKey()这个方法可以做到,如果有则不能用此用户名注册,否则可以继续填写资料,填写按成后,实例化一个User,将这个User的 userName作为key ,User作为value插入users这个map中,
登录的时候也是根据用户名去users中去找key,然后在匹配密码
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-16
你注册还返回集合干啥
注册 就返回一个true 或者false就可以了啊
登录的时候 就返回一个用户对象就可以了
public User userLogin(String userName,String password){
String sql="select * table where userName='"+userName+"' and password='"+password+"'";
......
User user=null;
ResultSet rs=conn.executQuery(sql);
while(rs.next()){
user=new User();
user.setUserName(rs.getString("userName"));
...
}
return user;
}

注册的话 你也可以传递一个对象
public boolean reg(User user){
return false;
}

方法有很多 看你自己习惯哪一种

---------------------------------
你的意思是注册后 保存数据 在登录 是吧追问

没有学过数据库啊!我就想像上面一样在登录里判断注册里有这个数据没?谢谢大家,我该怎么做啊?实在不会
对啊,我想到这样,其他的也不会哦

追答

如果保存到集合里面的吧 要一个一个去循环
你没学数据库 总学过文件流吧

追问

也没学过…就学到对象数组……那我是不可以做了吗?

第2个回答  2012-04-16
不想找代码了,设计一个用户类,属性用户名、邮箱、密码、确认密码
然后存到可以存到hashmap<key,value> key 属性字段,value用户相应的输入
还有什么疑问追问追问

我们只讲到,对象数组。这些是我试着做的,不太懂啊!我不能用HashSet做吗?
public static boolean get(ShuJu m){

return Test.set.contains(m);
}
public class ShuJu {
static String name;
static String pwd;
public ShuJu(String a, String b){
name = a;
pwd = b;
}
}
public class Test {
static HashSet set ;

public Test(HashSet set) {
Test.set = set;
}

追答

弄明白你的意思了。你是要先注册然后在登录,登录时去找存不存在这个数据。把注册信息保存到泛型中。就设计一个类,属性HashSet hs(用户名+密码+确认密码)放注册信息,可有多个注册者 属性String s(用户名+密码)存放登陆者的信息,每次一个登录者。设计方法两个属性的ge和set ,再设计一个方法判断是否存在登录者,返回值boolean。判断函数用到Hashset遍历如下:其他函数你应该可以实现的
public static boolean isExist(){
boolean flag=false;
Iterator i = hs.iterator();
while(i.hasNext()){
String temp = (String)i.next();
if(temp.stratWith(s)) {
false=true;
break;
}
}
return false;
}
还有什么疑问追问。

追问

不对啊,我用return Test.set.contains(m)怎么不行呢?为什么用temp.stratWith(s)不用temp.equals(s)呢?我先去做一下看看…估计你也睡了,先谢谢,嘿嘿
我保存信息的时候还是错了,每次都只能登陆最后注册的。你说的建个类来保存注册信息怎么做呢?

追答

本来想帮写来着,写了一半发现是我的了,就不是你的了。就少修改你的了。每次都只能登陆最后注册的,因为你在Test中没有增加用户方法,只是构造时传了一个用户。下面帮你改的,ShuJu类没变,Shuju类中你可以增加自己的方法。
mport java.util.HashSet;
public class Test {
static HashSet set ;
public Test(HashSet set) {
Test.set = set;
}

public static HashSet getSet() {
return set;
}

public static void setSet(ShuJu user) {//添加注册者方法
Test.set.add(user);
}

public static boolean get(ShuJu m){
return Test.set.contains(m);
}
public static void main(String []args){
ShuJu user1=new ShuJu("张三","123");
ShuJu user2=new ShuJu("李四","1234");
ShuJu user3=new ShuJu("王五","12345");
HashSethSet=new HashSet();
hSet.add(user1);
Test test=new Test(hSet);//默认张三
test.setSet(user2);//添加李四
System.out.println("王五登录"+test.get(user3));//王五未添加不能登录false
System.out.println("张三登录:"+test.get(user1));//成功true
System.out.println("李四登录:"+test.get(user2));
test.setSet(user3);//添加王五
System.out.println("王五登录"+test.get(user3));
}
}
以后学到更多,可以用其他楼的方法实现,更能体现java面向对象思想,比如 Java_Mr的很清晰明了。

本回答被提问者采纳
第3个回答  2012-04-16
首先 你做的是C/S 还是B/S
B/S注册把用户信息封装Users类中,直接插入数据库;
登入就是去数据库验证;
像这种单条记录根本用不上集合类;
用到集合类必须是返回多条记录
第4个回答  2012-04-16
你把注册过的信息放入一个属性文件里,运行之前先读那个属性文件追问

为什么我把集合设成静态属性,再在注册里set.add(m);new Test(set);这样给属性赋值不行吗?我再在登录里调用注册的这个属性,用注册类.set.contains(m);来判断……大家救救我吧

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网