ArrayList容器中怎么根据输出Id删除对象元素

guchao_123 2011-04-22 08:42:44
People.java
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;
}
}
...全文
478 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyl7733 2011-04-22
  • 打赏
  • 举报
回复
方法正确 要在People中重写一下 equals方法
在People类中加如下代码
	@Override
public boolean equals(Object obj) {
if(obj == null) {
return false;
} else if(obj.getClass() == this.getClass()) {
People p = (People)obj;
return p.id == this.id;
}
return false;
}
@Override
public int hashCode() {
int type = this.getClass().hashCode();
return id + type*41;
}
guchao_123 2011-04-22
  • 打赏
  • 举报
回复
跪求解决,在线等
guchao_123 2011-04-22
  • 打赏
  • 举报
回复
删除么个人,这个功能我没有实现出来,我想应该是AL.remove(Pe);语句有问题,我想了很多的办法还是没有解决。
guchao_123 2011-04-22
  • 打赏
  • 举报
回复
Main.java
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("程序结束");
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧