java基础 用arraylist做电话本

一个用java编写的通讯录 一个用java编写的通讯录,可以将记录保存为文件. 注: 图形界面下实现 立即下载
package arrays;


import java.awt.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;


public class Phone {
private String name;
private String sex;
private int age;
private String phonenum;
private String qqnum;
private String address;
static ArrayList<Phone> phonelist = new ArrayList<Phone>(100);


public void add() {
Phone phone1 = new Phone();
Scanner sc = new Scanner(System.in);
System.out.println("输入姓名:");
phone1.name = (sc.next());
Iterator<Phone> iter = phonelist.iterator();
while (iter.hasNext()) {
Phone book = iter.next();
if (book.name.equals(phone1.name)) {
System.out.println("重复输入姓名,请重新选择!");
return;
}


}


System.out.println("输入性别:");
phone1.sex = (sc.next());
System.out.println("输入年龄:");
phone1.age = (sc.nextInt());
System.out.println("输入电话号码:");
phone1.phonenum = (sc.next());
System.out.println("输入qq号码:");
phone1.qqnum = (sc.next());
System.out.println("地址:");
phone1.address = (sc.next());
phonelist.add(phone1);
System.out.println("添加成功!");


}


public void delete() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的人名:");
String nameInDelete = sc.nextLine();
System.out.println("确定要删除吗!确定请输入y返回输入n");
String nameInDelete1 = sc.next();
if (nameInDelete1.equalsIgnoreCase("n")) {
return;
}
for (int i = 0; i < phonelist.size(); i++) {
if ((((phonelist.get(i))).name).equals(nameInDelete)) { // 强转phone类型用get接收数组下标再.出其属性
phonelist.remove(i);
}
}
System.out.println("删除成功!");
}


public void update() {
Phone phoneupdate = new Phone();
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要修改的人名:");
String nameInUpdate = sc.nextLine();
Iterator<Phone> iter = phonelist.iterator();
while (iter.hasNext()) {
Phone book = iter.next();
if (book.name.equals(phoneupdate.name)) {
System.out.println("重复输入姓名,请重新选择!");
return;
}


}
System.out.println("确定要修改吗!确定请输入y返回输入n");
String nameInUpdate1 = sc.next();
if (nameInUpdate1.equalsIgnoreCase("n")) {
return;
}
for (int i = 0; i < phonelist.size(); i++) {
if (((phonelist.get(i))).name.equals(nameInUpdate)) {
System.out.println("输入姓名:");
phoneupdate.name = (sc.next());
System.out.println("输入性别:");
phoneupdate.sex = (sc.next());
System.out.println("输入年龄:");
phoneupdate.age = (sc.nextInt());
System.out.println("输入电话号码:");
phoneupdate.phonenum = (sc.next());
System.out.println("输入qq号码:");
phoneupdate.qqnum = (sc.next());
System.out.println("地址:");
phoneupdate.address = (sc.next());
// phonelist.add(phoneupdate);
phonelist.set(i, phoneupdate);
}
}


System.out.println("修改成功!");
}


public void all() {
// Phone Allphone = new Phone();
// //运用toarray时定义object类型的数组接收,再强转phone类型利用d来接收b数组中的属性
// Object[] b = phonelist.toArray();
Iterator<Phone> iter = phonelist.iterator();
while (iter.hasNext()) {
Phone book = iter.next();
System.out.println(book);
}
}


public void findname() {
// Object[] b = phonelist.toArray();
Phone phonefindname = new Phone();
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要查找的人名:");
String nameInFindName = sc.nextLine();
Iterator<Phone> iter = phonelist.iterator();
while (iter.hasNext()) {
Phone book = iter.next();
if (book.name.equals(nameInFindName)) {
System.out.println(book);
}
}
}


public String toString() {
return "姓名:" + name + "\t性别" + sex + "\t年龄" + age + "\t电话号码" + phonenum
+ "\tqq号码" + qqnum + "\t地址" + address;
}
}


package arrays;


import java.util.Scanner;


public class Testphone {
public static void main(String[] args) {
while (true) {
System.out.println("----------------电话本管理系统---------------");
System.out.println("1.添加 2.删除 3.修改 4.查询所有 5.根据姓名查询 0.退出");
System.out.println("----------------电话本管理系统---------------");
System.out.println("请选择业务:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
switch (a) {
case 1:
Phone Addphonebook = new Phone();
Addphonebook.add();
break;
case 2:
Phone Deletephonebook = new Phone();
Deletephonebook.delete();
break;
case 3:
Phone Updatephonebook = new Phone();
Updatephonebook.update();
break;
case 4:
Phone Allphonebook = new Phone();
Allphonebook.all();
break;
case 5:Phone Findnamephonebook = new Phone();
Findnamephonebook.findname();break;
case 0:
default:
}
}
}
}




小结:
加个static修饰phonelist就好啦 当然 除此之外还有一些小的逻辑处理不太恰当 改动一下就可以
static修饰的是归类所有 也就是被所有对象所共享使用
在进行各种操作的时候每次都new一个phone对象出来 如果不加static则他们之间的phonelist数据不能共享 所以每次都要在没有数据的基础上进行逻辑处理
在for循环里面获取每一个数组元素就可以
声明时确定<Phone>类型就不用强转了

然后取其各属

JAVA 用集合框架完成电话本管理系统 JAVA 用集合框架完成电话本管理系统,这是自己做的,希望对大家有帮助。 立即下载

相关推荐

通讯录ExpandeList

像通讯录的功能demo 可以展开收缩 显示数值等

自己联系的一段小代码 电话本管理程序

源文件 import java.util.Scanner; public class PhoneBook {  private String name;  private String sex;  private int age;  private String number;  private String QQ;  private String address;  publi

zhang137898的博客 274

DID实战指南:从平行趋势检验到PSM-DID的Stata全流程解析

本文详细解析了双重差分法(DID)在政策评估中的应用,从平行趋势检验到PSM-DID的Stata全流程操作。通过实例演示和代码示例,帮助研究者掌握DID方法的核心逻辑、前提条件验证及稳健性检验技巧,提升因果推断研究的准确性。

weixin_29234239的博客 742

第六章 集合(二)

像商城和超市这样的地方,都需要有自己的库房,并且库房商品的库存变化有专人记录,这样才能保证商城和超市正常运转。本例要求编写一个程序,模拟库存管理系统。该系统主要包括系统首页、商品入库、商品显示和删除商品功能。...

Yuns_的博客 631

C#实战:如何从零构建一个轻量级软PLC梯形图编辑器(附完整源码)

本文详细介绍了如何使用C#从零开始构建一个轻量级软PLC梯形图编辑器。内容涵盖项目架构设计、GDI+图形渲染、编辑交互实现以及核心的扫描执行引擎开发,并提供了定时器、计数器等高级功能的实现思路与完整源码,为开发者深入工业自动化领域提供了实战指南。

4k5l6j7h8的博客 258

基于halcon的HSV颜色匹配实例

HSV颜色识别原图代码结果 原图 代码 dev_update_off () dev_close_window () *颜色数组 FuseColors := ['Orange','Red','Blue','Yellow','Green'] *画笔颜色数组 DisplayColors := ['coral','red','blue','goldenrod','forest green'] * HSV模型中H分量: Orange 10-30, Red 0-10,Blue 125-162,Yellow 3

qq_39467811的博客 3546

java开发一个简单的通讯录

java开发一个简单的通讯录 ArrayList的综合应用 import java.util.*; public class ContactNote{ static Scanner sc=new Scanner(System.in); static ArrayList<Contact> list = new ArrayList<>(); public static void main(String[] args){ Friends x1 = new Friends('

weixin_46659330的博客 6344

用化学方法nmp溶剂从佳能cmos传感器上剥离拜耳矩阵和微透镜

将光刻胶暴露于 NMP 溶剂中 10-15 分钟,并进行轻微的机械搅拌,将溶解的光刻胶从基材表面带走,即可去除大部分光刻胶,之后再进行第二次溶剂浴,以洗去微量含有光刻胶的溶剂。我还担心传感器的校准问题,我觉得可以大致解决这个问题,比如在安装面上用刻度尺标记三个螺丝的位置,然后数着拧出螺丝的圈数,直到听到“咔哒”声(螺纹完全拧出)。我还担心传感器的校准问题,我觉得可以大致解决这个问题,比如在安装面上用刻度尺标记三个螺丝的位置,然后数着拧出螺丝的圈数,直到听到“咔哒”声(螺纹完全拧出)。在我看来,这是必读的;

qq_40247880的博客 1477

Java基础—通讯录管理系统

题目: 完成一个通讯录,需求: (1)添加联系人(联系人:编号,姓名,手机号,QQ,邮箱地址)添加时需要检查手机号和邮箱地址格式是否正确,若不正确,不允许添加 (2)联系人查询(输入姓名或电话查询) (3)显示联系人列表 (4)根据编号删除指定编号的联系人 代码分析: 之前写过类似的管理系统,不过是使用数组进行数据存储,这次的通讯录管理系统通过动态数组 ArrayList进行数据存储。其中代码实现的原理和之前所写相似。在此不再赘述。 判断手机号邮箱地址格式是否格式正确使用了正则表达式进行判断

qq_44873394的博客 4572

open3d将某一时间序列下的彩色图和深度图批量转换成点云(python)

必备条件需要3D相机生成的彩色图及深度图,注意要将深度图与彩色图对齐(一般3D相机自带对齐算子),以及3D相机的彩色图内参(相机自带内参获取功能)。有了此彩色图、对齐后的深度图以及相机内参就能使用open3d生成彩色点云了.

吾名招财的博客 315

【软考高项】【计算专题】- 3 - 进度类 - 双代号网络图

共需压缩 20 天。在双代号网络图中,工作一般使用箭线表示,任意一条箭线都需要占用时间、消耗资源,工作名称写在箭线的上方,而消耗的时间则写在箭线的下方或者工作后面。反映的是前后工作的交接点,节点中的编号可以任意编写,但应保证后续工作的节点比前面节点的编号大,即上图图中的1⃣️4⃣️ 即表示 B 活动和 D 活动间有依赖关系,D 活动的开始,依赖 B 活动的结束。B活动完成了一半, 各计划的实际支出为A活动6500元, B活动1000元, C活动280元, D。

欢迎来到我的博客,一起探索代码里的世界! 4566

java电话本_用java中的Arraylist实现电话本系统管理

1 importjava.util.ArrayList;2 importjava.util.Scanner;34 public classMainPage {5 public static voidmain(String[] args)6 {7 int cho = 0;8 @SuppressWarnings("resource")9 Scan...

weixin_36083698的博客 186

【语音识别】基于MFCC特征实现说话人语音识别matlab源码

1 模型 采用能够反映人对语音的感知特性的Mel频率倒谱系数(MFCC)作为特征参数,以及为避免时间规整问题采用矢量量化技术开发的说话人识别系统.MFCC主要的是模拟人耳的听觉过程,相对于其它参数它对语音波形的变化不敏感,更加稳定,系统取得很好的识别结果,实验表明系统训练和识别的计算量和存储量都比较低. 2 部分代码 functionvarargout=Main(varargin) % MAIN M-file for Main.fig % MAIN, by itself...

qq_59747472的博客 850

电话本管理系统 ArrayList版

题目参考:https://blog.youkuaiyun.com/Amber_technology/article/details/103818151本文代码是在其基础上进行的改进。 主要修改:使用ArrayList替换了数组,简化了代码量,提高了代码的可用性。 public class Telephone { //变量 private String name; private String ...

光明 287

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java原电话本管理系统+改方法用系统给的ArrayList类的方法实现。

1.算是父类(因为功能少没子类) public class TelephoneBook { private String name; private String sex; private String age; private String telephone; private String qq; private String address; public Tel...

qq_42250531的博客 455

java控制台中电话本 io流写入本地txt中

代码很简单,不做任何解释 package com.dsr.phone; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.In

胖子的梦想 1029

List版电话本

承接上篇-------《数组版电话本》 界面效果相同 MainUI、PartUI、PhoneTXT类代码不改动 PhoneDao类: import java.util.ArrayList; import java.util.Iterator; public class PhoneDao { public static ArrayList phoneTXTs = new Arr

gulingshangdian的博客 429

【实战】java之电话本管理系统List实现

使用List集合时,通常情况下声明为List类型,实例化时根据实际情况的需要,实例化为ArrayList; List<String> l = new ArrayList<String>();// 利用ArrayList类实例化List集合 本项目Persons为实体类,PhoneBooks为实现类; Persons.java import java.util.ArrayL...

qq_40743463的博客 459

list实现电话本

对昨天的电话本的一个完善,使用的不再是数组,而是用list实现对数据的操作,直接贴代码,还有许多不完善的地方,希望大神们多多指教。 public class Info {     private String name;     private String sex;     private String age;     private String phoneNumber

Snowyuef的博客 721

智能电话本项目

1 项目介绍 1.1 项目描述 该项目是用于日常生活中记录联系人信息的一款智能小工具。 实现了对联系人的姓名、年龄、性别、电话号码、住址的添加及修改、查找、删 除、排序等功能。该项目是以 Windows 控制台为运行平台,所有的操作都应在控制台 上进行。 1.2 编写目的 进一步理解什么是面相对象设计(OOD:Object Oriented Design)。充分理解面向对 象设计的精髓。 2 项目演示 双击 start.bat 可启动电话本项目,如图所示: 3 技术说明 3.1 业务流程结构图 3.2

weixin_40055163的博客 611

简述利用list实现简易电话本管理系统

要实现的功能:       ---------------------电话本管理系统------------------------       1.添加      2.删除     3.修改     4.查询所有    5.根据姓名查询      0.退出 基本思想:               可以用数组实现,但是使用数组只能事先定义好大小,这样就失去了程序的健壮性。而list

HP_EPM7_liang的博客 987

JAVA 用数组制作电话本管理系统

电话本管理系统 主界面: /** * 电话本实体类 * @author ZYQ * */ public class Telephone { private String name; private String sex; private int age; private String tel; private String q...

weixin_40338128的博客 1432

Java面向对象练习-电话本管理系统

实现电话本的增删改查(存于对象数组)。 来个运行后的效果: 下面就是实现的代码(如有不对欢迎指正 O(∩_∩)O)package zuoye2;import java.util.Scanner;public class PhoneNumber { Scanner sc = new Scanner(System.in); ZiLiao[] ziliao = new ZiLiao

一条咸鱼 6248

java 电话本

//本人以前学的是php,基本上是写一个类,解决问题,  写的仓促,     不足之处请指出. package test1; import java.util.*; public class tel {     String name; String age; String sex; String addr; int dindex ; //定义一

gwalking的博客 730

JAVA智能电话本项目|JavaSE中篇项目 第一版本

本博客为个人整理Java学习记录帖,如有错误,感谢指正。系统学习,欢迎持续关注,后续陆陆续续更新Java后端项目,Java部分我不打算更新基础部分知识,会从JavaWeb开始更新文章。

种花的喵酱 324
上一篇: 测试基础 1-7章回顾
下一篇: 整理白盒测试中的逻辑覆盖
Java__TestFundation
博客等级 码龄11年 3粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值