| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4062 人关注过本帖
标题:ArrayList怎么通过Id查找对象,删除对象
只看楼主 加入收藏
到处流浪
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-9-18
结帖率:33.33%
收藏
 问题点数:0 回复次数:5 
ArrayList怎么通过Id查找对象,删除对象
实现功能:
通讯录的流程:
   
  1 登陆:
      在控制台提示你输入用户名和密码
   Admin admin
* 登陆失败 –》 登陆页面上去

* 登陆成功  --》主页面上去
     提示信息 :1 注册一个用户  // 可以用注册的用户登录
                2 查询所有人 –> 当你选择2的时候,可以查询所有人
                3 删除麽个人
                4 对哪个人的信息进行修改


[ 本帖最后由 到处流浪 于 2011-4-23 17:44 编辑 ]
搜索更多相关主题的帖子: 用户登录 用户名 通讯录 admin 控制台 
2011-04-23 17:38
到处流浪
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-9-18
收藏
得分:0 
程序代码:
public class People {
    private  int id;//联系人id
       private String name;//联系人姓名
       private String pass;//联系人密码
       private  String num;//联系人电话
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPass() {
        return pass;
    }
    public void setPass(String pass) {
        this.pass = pass;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
   
    public People(int id,String name,String pass,String num){
        this.id=id;
        this.name=name;
        this.pass=pass;
        this.num=num;
    }
}
People.java
2011-04-23 17:39
到处流浪
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-9-18
收藏
得分:0 
Main.java
程序代码:
package com.softeem.addresswork;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

//主函数
public class Main {
      public static ArrayList<People> AL=new ArrayList<People>(); //声明这个容器来存放数据
      Scanner Sc=new Scanner(System.in);
      public void show(){
          System.out.println("欢迎进入主界面:请在下面的功能中选择你要的操作:");
          System.out.println("1、注册一个用户(可以用注册的用户登录)");
          System.out.println("2、查询所有人");
          System.out.println("3、删除麽个人");
          System.out.println("4、对哪个人的信息进行修改\n");
          System.out.println("输入(1~4)以内的一个数子");
      }
      public static boolean login(String name,String pass){
         
            if(name.equals("admin")&&pass.equals("123")){
                System.out.println("登陆成功!");
                return false;
               
            }else{
                System.out.println("登陆失败,请重新输入!");
                return true;
            }
         
      }
     
      //添加一个人(可以用注册的用户登录)
      public void Insert(){
          System.out.println("添加新的用户");
          System.out.println("联系人的id:");
          int id=Sc.nextInt();
          System.out.println("联系人的姓名:");
          String name=Sc.next();
          System.out.println("联系人的密码:");
          String pass=Sc.next();
          System.out.println("联系人的电话:");
          String num=Sc.next();
                   
          //输出新联系人的信息
          System.out.println("Id: "+id);
          System.out.println("用户名:"+name);
          System.out.println("密码:"+pass);
          System.out.println("电话:"+num);
          People Pe=new People(id,name,pass,num);
          AL.add(Pe);
      }
     
      //查询所有人
      public void Select(){
          System.out.println("id"+"\t用户名"+"\t密码"+"\t电话");
          Iterator it=AL.iterator();
          while(it.hasNext()){
              People Pe=(People) it.next();
              System.out.println(Pe.getId()+"\t"+Pe.getName()+"\t"+Pe.getPass()+"\t"+Pe.getNum());
          }
      }
     
      //删除么个人
      public void Delect(){
          System.out.println("请输出你要删除的Id:");
          int id=Sc.nextInt();
          Iterator it=AL.iterator();
          while(it.hasNext()){
              People Pe=(People) it.next();
              if(Pe.getId()==id){
                  AL.remove(Pe);
                  System.out.println("删除成功!");
              }
          }
      }
     
      //修改么个人信息
      public void Update(){
          System.out.println("请输出你要修改联系人的Id:");
          int id=Sc.nextInt();
          Iterator it=AL.iterator();
          while(it.hasNext()){
              People Pe=(People)it.next();
              if(Pe.getId()==id){
                  AL.remove(Pe);
                  System.out.println("修改前的姓名:"+Pe.getName());
                  System.out.println("修改前的密码:"+Pe.getPass());
                  System.out.println("修改前的电话:"+Pe.getNum());
                  System.out.println("请输入修改后的姓名:");
                  String name=Sc.next();
                  System.out.println("请输入修改后的密码:");
                  String pass=Sc.next();
                  System.out.println("请输入修改后的电话:");
                  String num=Sc.next();
                  People pe=new People(id,name,pass,num);
                  AL.add(pe);
                  System.out.println("修改成功");
              }
          }     
      }
      public static void main(String[] args) {
        //创建Scanner流
          String name=null;
          String pass=null;
          Scanner sc=new Scanner(System.in);
          do{
              System.out.println("请在下面输入用户名和密码");
              System.out.println("请输入用户名:");
              name=sc.nextLine();
              System.out.println("请输入密码:");
              pass=sc.nextLine();
              System.out.println("你输入的用户名和密码为:");
              System.out.println("用户名:"+name);
              System.out.println("密码:"+pass);
          }while(login(name,pass));//调用login传递控制台输入的用户名好密码
         
          //主页面
          Main main=new Main();
         
          do{
              main.show();
              int num=sc.nextInt();
              switch(num){
              case 1:main.Insert();break;
              case 2:main.Select();break;
              case 3:main.Delect();break;
              case 4:main.Update();break;
              default :System.out.println("输入有误,请重新输入!");
              }
              System.out.println("请输入(true/false)是否继续运行程序:");
          }while(sc.nextBoolean());
          System.out.println("程序结束");
    }
}
2011-04-23 17:40
到处流浪
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-9-18
收藏
得分:0 
删除一个人,这个功能实现会出错
程序代码:
 public void Delect(){
          System.out.println("请输出你要删除的Id:");
          int id=Sc.nextInt();
          Iterator it=AL.iterator();
          while(it.hasNext()){
              People Pe=(People) it.next();
              if(Pe.getId()==id){
                  AL.remove(Pe);
                  System.out.println("删除成功!");
              }
          }
      }
改了很多次都不成功,谁能帮我看看
2011-04-23 17:42
llooppzhang
Rank: 7Rank: 7Rank: 7
来 自:江苏
等 级:黑侠
威 望:5
帖 子:308
专家分:518
注 册:2009-10-18
收藏
得分:0 
回复 楼主 到处流浪
应为你在作while循环是对Iterator做了修改。。一种解决方案,可能不是最佳的:
程序代码:
   public void Delect(){
          System.out.println("请输出你要删除的Id:");
          int id=Sc.nextInt();
          Iterator it=AL.iterator();
          int position = -1;
          while(it.hasNext()){
              People Pe=(People) it.next();
              if(id == Pe.getId()){
                  position = AL.indexOf(Pe);
              }
              }
          if(position != -1){
                 AL.remove(position);

                 System.out.println("删除成功!") ;
          }
      }

2011-04-23 19:15
到处流浪
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-9-18
收藏
得分:0 
回复 5楼 llooppzhang
谢谢你!数组搞起来也是挺复杂的,我的思维很不支持,搞到我好累。
2011-04-23 20:21
快速回复:ArrayList怎么通过Id查找对象,删除对象
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017923 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved