大致思路:创建一个电话本条目的类,在主类中实例化。用实例化的对象调用构造参数接收输入值,然后将此对象存入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实现电话本系统管理的更多相关文章

  1. 实现Java中的ArrayList

    最近深受轮子哥影响,觉得造一些轮子应该会对自己的技术功底有一定的帮助,就决定先从简单的容器开始实现.废话不多说,就先实现一个Java中的ArrayList. ArrayList是我们在Java中使用非 ...

  2. 纯java代码在控制台运算电话本(不使用数据库)

    分享学习 Task_08 package cn.rzpt; import java.util.List; import java.util.Scanner; public class Task_08 ...

  3. 深入理解java中的ArrayList和LinkedList

    杂谈最基本数据结构--"线性表": 表结构是一种最基本的数据结构,最常见的实现是数组,几乎在每个程序每一种开发语言中都提供了数组这个顺序存储的线性表结构实现. 什么是线性表? 由0 ...

  4. Java中的ArrayList的初始容量和容量分配

    List接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.ArrayList继承于List接口,除继承过来的方法外,还提供一些方法来操作内部用来存储列表的数组的大 ...

  5. java中的ArrayList 使得集合中的对象不重复

    JAVA中的List接口存放的元素是可以重复的,在这个我重写对象里面的equals()方法,让集合里存放的对象不能重复 首先建一个类,在里面的main()方法中实现 list1中存放的是可以重复对象的 ...

  6. java中的ArrayList 、List、LinkedList、Collection关系详解

    一.基础介绍(Set.List.Map) Set(集):集合中的元素不按特定方式排序,并且没有重复对象.他的有些实现类能对集合中的对象按特定方式排序. List(列表):集合中的元素按索引位置排序,可 ...

  7. java中的ArrayList 、List、LinkedList、Collection

    原文地址: http://www.cnblogs.com/liqiu/p/3302607.html 一.基础介绍(Set.List.Map) Set(集):集合中的元素不按特定方式排序,并且没有重复对 ...

  8. Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)

    一.学习ArrayList与Map时,关于常用遍历方法的记录如下:  二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...

  9. Java中的ArrayList

    ArrayList是所谓的动态数组.用一个小例子: import java.util.ArrayList; import java.util.Iterator; import java.util.Li ...

随机推荐

  1. PHP str_shuffle() 函数

    实例 随机地打乱字符串中的所有字符: <?php高佣联盟 www.cgewang.comecho str_shuffle("Hello World");?> 定义和用法 ...

  2. PHP mysqli_refresh() 函数

    定义和用法 mysqli_refresh() 函数刷新表或缓存,或者重置复制服务器信息.高佣联盟 www.cgewang.com 语法 mysqli_refresh(connection,option ...

  3. Spring学习总结(2)-自动装配

    上面说过,IOC的注入有两个地方需要提供依赖关系,一是类的定义中,二是在spring的配置中需要去描述.自动装配则把第二个取消了,即我们仅仅需要在类中提供依赖,继而把对象交给容器管理即可完成注入.在实 ...

  4. day9.关于文件的操作

    一.文件操作 """ fp = open("文件名",mode="模式",encoding="utf-8") ...

  5. 自定义 Mybatis 框架

    分析流程 1. 引入dom4j <dependencies> <!--<dependency> <groupId>org.mybatis</groupI ...

  6. 【转载-学习】[一个前端必会的 Nginx免费教程 - 技术胖]

    本文学习资料:https://www.jspang.com/detailed?id=39 Nginx官网:https://www.nginx.com/ Nginx:轻量级HTTP服务器: 采用事件驱动 ...

  7. 学学Viewbinding

    Viewbinding 1.环境需求 环境上,需要Android Studio 3.6 Canary 11+ 同样的Gradle也需要升级(这年头都4.0了,应该没有还在用低版本的了吧...) 2.配 ...

  8. 微信号可以改了?我用 Python 发现了隐藏的 6 大秘密.

    “听说,微信可以改微信号了! ” 不知道谁扯了一嗓子,让办公室变成了欢乐的海洋 张姐流下了激动的泪水:“太好了!姐的年龄终于不用暴露在微信号了!” 很多人学习python,不知道从何学起.很多人学习p ...

  9. webMvcConfigurer的详情

                  摘要 Spring的WebMvcConfigurer接口提供了很多方法让我们来定制SpringMVC的配置.而且Spring还提供了WebMvcConfigurerAdap ...

  10. Make Windows 10 Comfortable

    在 StartUp 目录中(在当前用户目录下), 创建.bat, 里面可以写希望登录指定的命令(如使用subst进行映射, 将常用的目录映射为磁盘驱动器) 在 %USERPROFILE%(也就是用户家 ...