在java控制台中编写电话本,利用hashmap存储数据
来源:互联网 发布:乐安全软件 编辑:程序博客网 时间:2024/04/29 08:20
这是java中的控制台的电话本小程序,使用了hashmap存储联系人信息
package com.dsr.java;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.Scanner;public class phonebook { boolean startsingle = true; Scanner sc = new Scanner(System.in); // LinkedHashMap是HashMap的一个子类,他会维护一个链表,记录你的插入循序,让你能够按顺序输出。 LinkedHashMap<String, books> book = new LinkedHashMap<String, books>(); private String name; private String sex; private String age; private String num; public static void main(String[] args) { // TODO Auto-generated method stub new phonebook().run(); } private void run() { // TODO Auto-generated method stub while (startsingle) { System.out.println("———————————————————电话本———————————————————"); System.out.println("1.添加\t2.删除\t3.修改\t4.查询\t5.打印全部\t0.退出"); System.out.println("———————————————————电话本———————————————————"); System.out.println("请输入数字选择功能"); String select = sc.next(); switch (select) { case "1": add(); break; case "2": delete(); break; case "3": update(); break; case "4": search(); break; case "5": printall(); break; case "0": sc.close(); startsingle = false; break; default: System.out.println("输错了,重来!!!!"); break; } } } private void printall() { // TODO Auto-generated method stub // 1.常见的打印方式 int i = 1; for (String key : book.keySet()) { System.out.print("第" + i + "位联系人\t"); System.out.println(book.get(key).printone()); i++; } //Iterator iter=book.entrySet().iterator(); //while(iter.hasNext()){ // System.out.println(iter.next()); //} } private void search() { // TODO Auto-generated method stub System.out.println("输入查询的联系人姓名"); name = sc.next(); if (find(name) == 0) { System.out.println("联系人不存在!!!!"); return; } System.out.println(book.get(name).printone()); } private void update() { // TODO Auto-generated method stub System.out.println("输入要修改的联系人信息!!!"); name = sc.next(); int update = find(name); if (update == 0) { System.out.println("你要修改的联系人不存在!!!!"); return; } book.remove(name); books b = new books(); System.out.println("输入姓名!!!"); name = sc.next(); // 联系人信息修改之后会附带着修改hashmap中的键 b.setName(name); System.out.println("输入性别!!!"); b.setSex(sc.next()); System.out.println("输入年龄!!!"); b.setAge(sc.next()); System.out.println("输入电话!!!"); b.setNum(sc.next()); book.put(name, b); System.out.println(b.printone()); b = null; System.gc(); } private void delete() { // TODO Auto-generated method stub System.out.println("请输入要删除联系人的姓名!!!!!"); String name = sc.next(); int i = find(name); if (i == 1) { book.remove(name); System.out.println("删除成功!!!!"); } else { System.out.println("你要删除的联系人不存在!!!!"); } } private void add() { // TODO Auto-generated method stub name = null; boolean addsingle = true; while (addsingle) { System.out.println("输入姓名!!!!!"); name = sc.next(); if (book.get(name) != null) { System.out.println("联系人已存在,确认覆盖联系人?????"); System.out.println("1.覆盖\t2.重新输入\t3.取消"); String covervalue = sc.next(); switch (covervalue) { case "1": System.out.println("输入姓名!!!!!"); name = sc.next(); addsingle = false; break; case "2": break; case "3": addsingle = false; return; default: System.out.println("输错了!!!!"); break; } } else { addsingle = false; } } System.out.println("输入性别!!!!!"); sex = sc.next(); System.out.println("输入姓年龄!!!!!"); age = sc.next(); System.out.println("输入电话!!!!!"); num = sc.next(); books b = new books(); b.setName(name); b.setAge(age); b.setNum(num); b.setSex(sex); book.put(name, b); System.out.println("添加成功"); System.out.println(b.printone()); b = null; System.gc(); } private int find(String name) { if (book.get(name) == null) { return 0;// 表示不存在 } return 1; }}class books { private String name; private String sex; private String age; private String num; public String printone() { return "name:" + name + "\tsex:" + sex + "\tage:" + age + "\tnum:" + num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getNum() { return num; } public void setNum(String num) { this.num = num; }}
0 0
- 在java控制台中编写电话本,利用hashmap存储数据
- java控制台中电话本 io流写入本地txt中
- 怎样用C++在控制台中编写俄罗斯方块
- java从控制台中读取数据
- Java如何从控制台中读取数据
- java 控制台中读取数据的方法
- Java从控制台中读取数据
- Java实现在控制台中输入字符
- 在JAVA控制台中控制菜单的框架小程序
- Java从控制台中读取数据完全攻略
- JAVA从控制台中读取数据完全攻略
- Java从控制台中读取数据完全攻略
- Java从控制台中读取数据完全攻略
- Java从控制台中读取数据完全攻略
- Java从控制台中读取数据的各种方法
- Java从控制台中读取数据的各种方法
- Java从控制台中读取数据的各种方法
- java控制台中打印数据要求对其
- Axure实训一
- UVA1629_Cake slicing
- python中的字典遍历方法
- cocos植物大战僵尸(四)选择植物卡片:植物卡片类
- LeetCode Binary Tree Right Side View
- 在java控制台中编写电话本,利用hashmap存储数据
- 计算机网络之Socket
- UVA10271_Chopsticks
- AxureRP和Markman新手入门心得
- LeetCode Populating Next Right Pointers in Each Node
- UVA12174_Shuffle
- python 笔记1--基础类型
- autoreleasepool
- 2015苹果发布会观后感