大致思路:创建一个电话本条目的类,在主类中实例化。用实例化的对象调用构造参数接收输入值,然后将此对象存入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. luogu P4294 [WC2008]游览计划

    LINK:游览计划 斯坦纳树例题. 斯坦纳树是这样一类问题:带权无向图上有K个关键点 求出包含这K个点的最小生成树. 也就是说 求最小生成树 但是 并不是整张图 仅限于K个点. 可以发现我们利用克鲁斯 ...

  2. Sharding-JDBC实现垂直拆分

    参考资料:猿天地  https://mp.weixin.qq.com/s/wl8h6LIQUHztVuVbjfsU3Q  作者:尹吉欢 当一个项目量增大,数据表数量增多时,就需要对数据表进行垂直拆分, ...

  3. 非常适合小白的 Asyncio 教程

      非常适合小白的 Asyncio 教程 原文:https://segmentfault.com/a/1190000008814676 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束, ...

  4. CentOS7系统管理与运维实战

    CentOS7系统管理与运维实战 下载地址 https://pan.baidu.com/s/1KFHVI-XjGaLMrh39WuhyCw 扫码下面二维码关注公众号回复100007 获取分享码 本书目 ...

  5. iOS开发多线程在实际项目中的运用

    实际项目开发中为了能够给用户更好的体验,有些延时操作我们都会放在子线程中进行. 今天我们就来聊聊多线程在实际项目中的运用. 我们先来看看多线程的基础知识: 1.多线程的原理: 同一时间,CPU只能处理 ...

  6. canvas小画板——(2)荧光笔效果

    我们在上一篇文章中讲了如何绘制平滑曲线 canvas小画板——(1)平滑曲线. 透明度实现荧光笔 现在我们需要加另外一种画笔效果,带透明度的荧光笔.那可能会觉得绘制画笔的时候加上透明度就可以了.我们来 ...

  7. Python 切分数组,将一个数组均匀切分成多个数组

    Python 切分数组 将一个数组,均分为多个数组 代码 # -*- coding:utf-8 -*- # py3 def list_split(items, n): return [items[i: ...

  8. [问题记录] webpack devServer HtmlWebpackPlugin 没有加载 js、css

    webpack devServer 没有加载 js.css HtmlWebpackPlugin runtimeChunks 注入问题. 描述 写了一个极其简单的多页面 demo 启动开发服务器,发现样 ...

  9. Vue 使用$createElement自定义文本

    有时候弹窗或者一些特殊的区域需要自定义一些html元素来显示(snabbdom) const h = this.$createElement this.$msgbox({ title: '提示', m ...

  10. PHP 开发工程师基础篇 - PHP 字符串

    字符串 (String) 字符串是一系列字符的集合.如 “abc”. 在 PHP 中,一个字符代表一个字节,一个字节 (Byte) 有 8 比特 (bit). PHP 仅支持 256 字符集,因此 P ...