用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 ...
随机推荐
- PDOStatement::closeCursor
PDOStatement::closeCursor — 关闭游标,使语句能再次被执行.(PHP 5 >= 5.1.0, PECL pdo >= 0.9.0) 说明 语法 bool PDOS ...
- [转]35张图就是为了让你深入AQS
以下文章来源于程序员cxuan ,作者一枝花算不算浪漫 谈到并发,我们不得不说AQS(AbstractQueuedSynchronizer),所谓的AQS即是抽象的队列式的同步器,内部定义了很多锁相关 ...
- CentOS7系统管理与运维实战
CentOS7系统管理与运维实战 下载地址 https://pan.baidu.com/s/1KFHVI-XjGaLMrh39WuhyCw 扫码下面二维码关注公众号回复100007 获取分享码 本书目 ...
- ios数组基本用法和排序大全
1.创建数组 // 创建一个空的数组 NSArray *array = [NSArray array]; // 创建有1个元素的数组 array = [NSArray arrayWithObject: ...
- List集合遍历时修改元素出现并发修改异常总结
什么是并发修改异常: 当我们在遍历实现了collection接口与iterator接口的集合时(List.Set.Map), 我们可以通过遍历索引也可以通过迭代器进行遍历.在我们使用迭代器进行遍历集合 ...
- 15、Java中级进阶 面向对象 继承
1.何为面向对象 其本质是以建立模型体现出来的抽象思维过程和面向对象的方法(百度百科)是一种编程思维,也是一种思考问题的方式 如何建立面向对象的思维呢?1.先整体,再局部2.先抽象,再具体3.能做什么 ...
- 类型SQL注入实验 Part1
准备为PHPstudy环境 <?php $id = $_GET['t']; $conn = mysql_connect("127.0.0.1","root" ...
- java 匿名对象与内部类
一 匿名对象 1.匿名对象的概念 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 例如: public class Person{ public void eat(){ ...
- java方法中参数传递与随机点名器、库存管理案例
一 参数传递 1.定义: 参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数, 这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我 们称 ...
- Vuex mapMutation的基本使用
mapMutation-store中的同步方法 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default n ...