用java中的Arraylist实现电话本系统管理
大致思路:创建一个电话本条目的类,在主类中实例化。用实例化的对象调用构造参数接收输入值,然后将此对象存入Arraylist的对象中,实现动态添加电话本条目。
该系统具备添加、删除、修改、查询所有和按姓名查询等。
//定义PersonIitm类
public class PersonItem {
private String pname;
private char psex;
private int page;
private String phonenum;
private String qnumber;
private String paddress;
//构造函数
public void setName(String pname)
{
this.pname = pname;
} public void setSex(char psex)
{
this.psex = psex;
} public void setAge(int page)
{
this.page = page;
} public void setPhone(String phonenum)
{
this.phonenum = phonenum;
} public void setQQ(String qnumber)
{
this.qnumber = qnumber;
} public void setAddress(String paddress)
{
this.paddress = paddress;
} public String getName()
{
return pname;
} public char getSex()
{
return psex;
} public int getAge()
{
return page;
} public String getPhone()
{
return phonenum;
} public String getQQ()
{
return qnumber;
} public String getAddress()
{
return paddress;
} }
import java.util.ArrayList;
import java.util.Scanner; public class MainPage {
public static void main(String[] args)
{
int cho = 0;
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
do
{
System.out.println("--------------------电话本管理系统"
+ "--------------------\n"
+ "1.添加\t2.删除\t3.修改\t4.查询所有\t5.根据姓名查询\t0.退出\n"
+ "--------------------电话本管理业务"
+ "--------------------\n请选择业务");
cho = sc.nextInt();
switch(cho)
{
case 0:
System.out.println("退出系统");
break;
case 1:
InsertItem();
break;
case 2:
RemoveItem();
break;
case 3:
UpdateItem();
break;
case 4:
SelectAll();
break;
case 5:
SelectItem();
break;
default:
System.out.println("没有此选项!");
break;
}
}
while(cho != 0); } static ArrayList<PersonItem> item = new ArrayList<PersonItem> ();
//定义添加函数
public static void InsertItem()
{
System.out.print("------------添加电话本------------\n姓名:");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
PersonItem pi = new PersonItem(); //类实例化
pi.setName(sc.next());
System.out.print("性别:");
pi.setSex(sc.next().charAt(0));
System.out.print("年龄:");
pi.setAge(sc.nextInt());
System.out.print("电话:");
pi.setPhone(sc.next());
System.out.print("QQ:");
pi.setQQ(sc.next());
System.out.print("地址:");
pi.setAddress(sc.next());
item.add(pi);
System.out.println("姓名:"+pi.getName()+",性别:"+pi.getSex()+",年龄:"+pi.getAge()+",电话:"
+pi.getPhone()+",QQ:"+pi.getQQ()+",地址:"+pi.getAddress()+"\n添加成功");
} //定义查找人名函数
public static void SelectItem()
{
System.out.print("------------查找电话本------------\n"
+ "请输入姓名:");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String name = sc.next();
int i = -1;
for(int j = 0;j < item.size();j++)
{
if(item.get(j).getName().equals(name)) //切记不用“==”比较,它比较的是地址
{
i = j;
break;
}
}//遍历查询人名
if(i == -1)
System.out.println("此人不存在");
else
System.out.println("姓名:"+item.get(i).getName()+",性别:"+item.get(i).getSex()+",年龄:"+item.get(i).getAge()+",电话:"
+item.get(i).getPhone()+",QQ:"+item.get(i).getQQ()+",地址:"+item.get(i).getAddress());
} //定义查找所有函数
public static void SelectAll()
{
System.out.println("------------打印所有电话本------------");
for(int i = 0;i < item.size();i++)
{
System.out.println("姓名:"+item.get(i).getName()+",性别:"+item.get(i).getSex()+",年龄:"+item.get(i).getAge()+",电话:"
+item.get(i).getPhone()+",QQ:"+item.get(i).getQQ()+",地址:"+item.get(i).getAddress());
}
} //删除函数
public static void RemoveItem()
{
System.out.print("------------删除电话本------------\n"
+ "请输入删除的姓名 ");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String name = sc.next();
int i = -1;
for(int j = 0;j < item.size();j++)
{
if(item.get(j).getName().equals(name))
{
i = j;
break;
}
}
if(i == -1)
System.out.println("此人不存在");
else
{
System.out.println("姓名:"+item.get(i).getName()+",性别:"+item.get(i).getSex()+",年龄:"+item.get(i).getAge()+",电话:"
+item.get(i).getPhone()+",QQ:"+item.get(i).getQQ()+",地址:"+item.get(i).getAddress());
System.out.println("确定吗?1(是)0(否)");
if(sc.nextInt() == 1)
{
item.remove(i);
System.out.println("删除成功");
}
} } //修改函数
public static void UpdateItem()
{
System.out.print("------------修改电话本------------\n"
+ "输入姓名:");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String name = sc.next();
int i = -1;
for(int j = 0;j < item.size();j++)
{
if(item.get(j).getName().equals(name))
{
i = j;
break;
}
}
if(i == -1)
System.out.println("此人不存在");
else
{
System.out.println("姓名:"+item.get(i).getName()+",性别:"+item.get(i).getSex()+",年龄:"+item.get(i).getAge()+",电话:"
+item.get(i).getPhone()+",QQ:"+item.get(i).getQQ()+",地址:"+item.get(i).getAddress());
System.out.print("请输入信息\n姓名:");
item.get(i).setName(sc.next());
System.out.print("性别:");
item.get(i).setSex(sc.next().charAt(0));
System.out.print("年龄:");
item.get(i).setAge(sc.nextInt());
System.out.print("电话:");
item.get(i).setPhone(sc.next());
System.out.print("QQ:");
item.get(i).setQQ(sc.next());
System.out.print("地址:");
item.get(i).setAddress(sc.next());
System.out.println("姓名:"+item.get(i).getName()+",性别:"+item.get(i).getSex()+",年龄:"+item.get(i).getAge()+",电话:"
+item.get(i).getPhone()+",QQ:"+item.get(i).getQQ()+",地址:"+item.get(i).getAddress());
System.out.println("修改成功"); }
}
}
用java中的Arraylist实现电话本系统管理的更多相关文章
- 实现Java中的ArrayList
最近深受轮子哥影响,觉得造一些轮子应该会对自己的技术功底有一定的帮助,就决定先从简单的容器开始实现.废话不多说,就先实现一个Java中的ArrayList. ArrayList是我们在Java中使用非 ...
- 纯java代码在控制台运算电话本(不使用数据库)
分享学习 Task_08 package cn.rzpt; import java.util.List; import java.util.Scanner; public class Task_08 ...
- 深入理解java中的ArrayList和LinkedList
杂谈最基本数据结构--"线性表": 表结构是一种最基本的数据结构,最常见的实现是数组,几乎在每个程序每一种开发语言中都提供了数组这个顺序存储的线性表结构实现. 什么是线性表? 由0 ...
- Java中的ArrayList的初始容量和容量分配
List接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.ArrayList继承于List接口,除继承过来的方法外,还提供一些方法来操作内部用来存储列表的数组的大 ...
- java中的ArrayList 使得集合中的对象不重复
JAVA中的List接口存放的元素是可以重复的,在这个我重写对象里面的equals()方法,让集合里存放的对象不能重复 首先建一个类,在里面的main()方法中实现 list1中存放的是可以重复对象的 ...
- java中的ArrayList 、List、LinkedList、Collection关系详解
一.基础介绍(Set.List.Map) Set(集):集合中的元素不按特定方式排序,并且没有重复对象.他的有些实现类能对集合中的对象按特定方式排序. List(列表):集合中的元素按索引位置排序,可 ...
- java中的ArrayList 、List、LinkedList、Collection
原文地址: http://www.cnblogs.com/liqiu/p/3302607.html 一.基础介绍(Set.List.Map) Set(集):集合中的元素不按特定方式排序,并且没有重复对 ...
- Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)
一.学习ArrayList与Map时,关于常用遍历方法的记录如下: 二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...
- Java中的ArrayList
ArrayList是所谓的动态数组.用一个小例子: import java.util.ArrayList; import java.util.Iterator; import java.util.Li ...
随机推荐
- R的操作入门熟悉
产生向量: a=c(1,2,3) //产生 1,2,3向量 a=1:10-1 //产生 0 - 9数字 a=seq(5,20,by=2) // 以2增长 a=seq(5,120,length=10) ...
- .NET 异步详解
前言 博客园中有很多关于 .NET async/await 的介绍,但是很遗憾,很少有正确的,甚至说大多都是"从现象编原理"都不过分. 最典型的比如通过前后线程 ID 来推断其工作 ...
- JDBC回顾
回顾JDBC,完成查询 1 什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库.原来我们操作数据库是在控制台使 ...
- 【工具】之003-Windows下常用工具
写在前面 我很懒,,,不想敲一个命令一个命令敲... "偷懒是有前提的,不是之前,就是之后." 常用命令 Windows 已知进程名称 :: Windows 下 杀死指定进程 ta ...
- XCTF-WEB-新手练习区(1-4)笔记
靶场地址:https://adworld.xctf.org.cn/ 1:view_source X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了. 原理:使用浏览器F12或者B ...
- 【Linux】添加Nginx代理配置只允许内部IP访问
location / { index index.jsp; proxy_next_upstream http_500 http_502 http_503 http_504 error timeout ...
- C# 委托 应用实例
用一句话解释委托:委托是一种可以把引用存储为函数的类型. 有些类似Spring框架对于接口的用法,向Action中注入Service对象.Action并不知道调用哪个服务层,只有容器通过配置文件 向A ...
- 2020-07-02:在浏览器输入一个url后按回车,会发生什么?
福哥答案2020-07-02: 简单回答: 域名解析. 建立TCP连接. 请求. 处理. 响应. 释放TCP连接. 页面渲染. 中级回答: 域名解析 浏览器DNS缓存. 操作系统DNS缓存. 路由器缓 ...
- C#LeetCode刷题之#110-平衡二叉树(Balanced Binary Tree)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4074 访问. 给定一个二叉树,判断它是否是高度平衡的二叉树. 本 ...
- 关于vector的自我补充
insert()函数,选择性插入. insert(v.begin()+i,x)意思就是把x插入vector数组v的第i位置上(也是迭代器的位置上),其后面的数字都会自动后移.注意i是从0开始的! er ...