java collection 之用法,登陆注册功能的实现

来源:互联网 发布:合肥淘宝兼职 编辑:程序博客网 时间:2024/06/04 15:24
import java.io.InputStream;import java.net.PasswordAuthentication;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Scanner;/*第一步: 提示用户选择功能, A(注册)  B(登陆) 。 要求: 功能选择 的时候要忽略大小写。注册:1. 提示用户输入注册的账号(数字)与密码,如果输入的id号已经存在集合中,提示用户重新输入。 注册完毕之后,把集合中的所有用户信息打印出来。(使用:toArrry()方法)登陆: 提示用户输入登陆的账号与密码,如果账号与密码这个用户已经存在集合中,那么登陆成功,否则登陆失败。 *  *  *  *  */class User{//创建一个用户类int name;String password;public User(int name,String password){this.name=name;this.password=password;}}class Registered extends User implements Runnable//创建一个注册类{public Registered(int name, String password) {super(name, password);// TODO Auto-generated constructor stub}User user=new User(00000,"lzk147258");@Overridepublic String toString() {// TODO Auto-generated method stubreturn "[  账号    "+this.name+"  密码    "  +this.password+"  ]";    }@Override    public boolean equals(Object obj){Registered p=(Registered) obj;return this.name==p.name;};@Overridepublic void run() {//多线程实现方法// TODO Auto-generated method stub}}class loagin extends User implements Runnable{public loagin(int name, String password) {//构造方法super(name, password);// TODO Auto-generated constructor stub}// TODO Auto-generated constructor stub//创建一个登陆类public String toString() {// TODO Auto-generated method stubreturn "[  账号    "+this.name+"  密码    "  +this.password+"  ]";    }@Override    public boolean equals(Object obj){loagin p=((loagin) obj);return this.name==p.name;};@Overridepublic void run() {}//创建一个登陆类}public class demo8 {//创建一个主类public static void main(String[] args) {//while(true){事实证明位置不一样,效果就是不一样String a; //用于接受输入流Collection c=new ArrayList();Collection c1=new ArrayList();//Registered r=new Registered(1111,"sg");//loagin l =new loagin(1111,"sg");Scanner b= new Scanner(System.in);while(true){//可以用if语句代替,更容易退出//boolean flag=true;//设置一个布尔变量,判断while的循环条件System.out.println("请选择功能,A(注册)  B(登陆)。");System.out.println("请输入:");a=b.next();//请输入try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}if(a.equals("A")|a.equals("B")){//判断是否需要重新输入if(a.equals("A")){System.out.println("欢迎使用 注册 功能!");System.out.println("请输入账号:");int name=b.nextInt();System.out.println("请输入密码:"); String password=b.next(); Registered r=new Registered(name,password);if(c.contains(r)){System.out.println("这个账号已存在");}else{c.add(r);System.out.println("注册成功!");Object[] arr=c.toArray();for(int i=0;i<arr.length;i++){Registered p=(Registered) arr[i];if(p.name==r.name){System.out.println("当前用户名和密码是"+p);}}}}else{Registered l =new Registered(1111,"sg");System.out.println("欢迎使用 登陆 功能!");System.out.println("请输入账号:");l.name=b.nextInt();System.out.println("请输入密码:");l.password=b.next();c1.addAll(c);if(c.contains(l)){Object[] arr=c1.toArray();for(int i=0;i<arr.length;i++){Registered p=(Registered) arr[i];if(p.password.equals(l.password)){//必须用equals,不知道为什么System.out.println("登陆成功!");}else{ System.out.println("密码错误");}}}else System.out.println("账户名不存在!");}}else {System.out.println("输入错误!请重新输入!");/*Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(==),比较的是他们的值。 2.复合数据类型(类)   当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,  他们的比较后的结果为true,否则比较后结果为false。 JAVA当中所有的类都是继承于Object这个基类的,  在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,  如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。 * * * */}}}//一个登陆注册类就能解决问题}//简单的登陆注册 代码段能保存数据,但不能保证不同集合中元素互存。。
<img src="http://img.blog.csdn.net/20150731181723645?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

1 0
原创粉丝点击