1. 程式人生 > >使用Map集合寫電話本程式

使用Map集合寫電話本程式

電話本管理系統 

  1.主介面


大體就是要實現對電話本的增刪改查:

因為不清楚要儲存的資料的數量,所以可以使用ArrayList不定長陣列去實現,也可以使用集合類去做,此題我用Map集合來做。

廢話不多說,直接上程式碼:

PhoneInfo類定義了一些屬性,變數及構造方法

public class PhoneInfo {
	private String name;
	private String sex;
	private String age;
	private String tel;
	private String qq;
	private String address;

	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 getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public String getQq() {
		return qq;
	}

	public void setQq(String qq) {
		this.qq = qq;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public PhoneInfo(String name, String sex, String age, String tel, String qq, String address) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
		this.tel = tel;
		this.qq = qq;
		this.address = address;
	}

	@Override
	public String toString() {
		return "PhoneInfo [name=" + name + ", sex=" + sex + ", age=" + age + ", tel=" + tel + ", qq=" + qq
				+ ", address=" + address + "]";
	}

}
TelBook類封裝了對電話本的操作:增刪改查的方法。
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class TelBook {
	static Scanner sc = new Scanner(System.in);
	static TelBook tb = new TelBook();
	Map map = new HashMap<>();	
	public static void main(String[] args) {
		System.out.println("————————————————————電話本管理系統——————————————————");
		System.out.println("1.新增       2.刪除       3.修改       4.查詢所有       5.根據姓名查詢      0.退出");
		System.out.println("————————————————————電話本管理系統——————————————————");
		int option;
		do {
		System.out.println("請選擇業務");
		option = sc.nextInt();
		switch (option) {
		case 1:
			
			tb.add();
			break;
		case 2:
			tb.delete();
			break;
		case 3:
			tb.modify();
			break;
		case 4:
			tb.find();
			break;
		case 5:
			tb.findName();
			break;
		case 0:
			System.out.println("電話本系統結束");
			break;
		default:

		}}
		while(option!=0);
	}
	public void add() {
		System.out.println("———————————新增電話本————————————");
		shuru();
		Set set = map.entrySet();
		Iterator it = set.iterator();
		while (it.hasNext()) {
			Map.Entry mapEntry = (Map.Entry) it.next();
			System.out.print(mapEntry.getKey() + "   " + mapEntry.getValue());
		}
		System.out.println();
		System.out.println("新增成功");

	}
	public void delete() {
		System.out.println("————————————刪除電話本——————————————");
		System.out.println("請輸入要刪除的姓名");
	    String deleteName = sc.next();
	        if(map.containsValue(deleteName)) {
	        	map.remove(deleteName);
	        	System.out.println("刪除成功");
	        }else 
	        	System.out.println("使用者不存在!");
		
	}
	public void modify() {
		System.out.println("————————————修改電話本——————————————");
		System.out.println("請輸入要修改的姓名");
        String modifyName = sc.next();
        if(map.containsValue(modifyName)) {
        map.remove(modifyName);
            shuru(); 
            Set set = map.entrySet();
		Iterator it = set.iterator();
		while (it.hasNext()) {
			Map.Entry mapEntry = (Map.Entry) it.next();
			System.out.print(mapEntry.getKey() + "   " + mapEntry.getValue());
		}
		System.out.println();
        }
        else {
        	System.out.println("使用者不存在");
        }   
		
	}
	public void find() {
		System.out.println("——————————————查詢所有——————————————");
		/* Set set = map.entrySet();
			Iterator it = set.iterator();
			while (it.hasNext()) {
				Map.Entry mapEntry = (Map.Entry) it.next();
				System.out.print(mapEntry.getKey() + "   " + mapEntry.getValue());
			}*/
		Set<String> set = map.keySet();
		for(String s:set) {
			System.out.println(map.get(s).toString());
		}
	}
	public void findName() {
		System.out.println("————————————根據姓名查詢——————————————");
		System.out.println("請輸入要查詢的姓名");
        String findName = sc.next();
        if(map.containsValue(findName)) {
        	  Set set = map.entrySet();
		Iterator it = set.iterator();
		while (it.hasNext()) {
			Map.Entry mapEntry = (Map.Entry) it.next();
			System.out.print(mapEntry.getKey() + "   " + mapEntry.getValue());
		}
		System.out.println();
        }
        else {
        	System.out.println("使用者不存在");
        }
      
        
	}
	public void shuru() {
		PhoneInfo p = new PhoneInfo("", "", "", "", "", "");
		System.out.print("姓名:");
		String name = sc.next();
		p.setName(name);
		map.put("姓名:", name);	
		System.out.println();
		System.out.print("性別:");
		String sex = sc.next();
		p.setSex(sex);
		map.put("性別:", sex);
		System.out.println();
		System.out.print("年齡:");
		String age = sc.next();
		p.setAge(age);
		map.put("年齡:", age);
		System.out.println();	
		System.out.print("電話:");
		String tel = sc.next();
		p.setTel(tel);
		map.put("電話:", tel);
		System.out.println();	
		System.out.print("QQ:");
		String qq = sc.next();
		p.setQq(qq);
		map.put("QQ:", qq);
		System.out.println();	
		System.out.print("地址:");
		String address = sc.next();
		p.setAddress(address);
		map.put("地址:", address);
		System.out.println();		
	}
	

}

部分程式碼截圖:




執行截圖:


寫在最後:從Map中獲取元素一定要注意是Key值還是Value值,修改時要先remove.

相關推薦

使用Map集合話本程式

電話本管理系統    1.主介面 大體就是要實現對電話本的增刪改查: 因為不清楚要儲存的資料的數量,所以可以使用ArrayList不定長陣列去實現,也可以使用集合類去做,此題我用Map集合來做。 廢話不多說,直接上程式碼: PhoneInfo類定義了一些屬性,變數及構造

python實現增刪改查話本程式筆記

import json class Person(): def init(self,name,tel): self.name=name self.tel=tel r=open(“notebook.json”,‘rb’) d=json.load® while True: action=inpu

python 話本vcf格式,python保存聯系人vcf,python生成vcf格式文件

style odin path pre 文件 The b+ a+b list #!/usr/bin/python3 #coding:utf-8 ‘‘‘ 生成電話本 BEGIN:VCARD VERSION:3.0 N:QQ;;;; FN:QQ TEL;

【JAVA】java中實現map集合的資料存取詳解三種方法。Android程式設計師也是要會

長期維護的Android專案,裡面包括常用功能實現,以及知識點詳解, 當然還有java中的知識點。具體請看github: https://github.com/QQ986945193/DavidAndroidProjectTools 好了,說正題

python連接Mysql數據庫的小話本

sele word mysql數據庫 pack 連接 裏的 功能 mit 至少 先不說了,先把代碼放這,等有時間再說明程序裏的問題, 這個小程序知識把功能實現,並沒有對布局方面有太多追求 有些註釋掉的也沒有刪除,也沒有個函數包起來,整體看著 應該是有點亂 以下是完整代碼,

黑馬程式設計師——Java集合框架(三)之Map集合、Collections與Arrays工具類

-----------android培訓、java培訓、java學習型技術部落格、期待與您交流!------------ Map集合 一、概述 Map集合儲存的元素是鍵值對,即將鍵和值一對一對往裡存,而且要保證鍵的唯一性。  問題思考:   1.如何保證鍵的唯一性?   

零基礎案例,別再錯過了,動手Python做一個話本程式

最近比較忙,只能抽空的寫寫文章,其實我也是一個上班族,python完全是個人想學然後希望以後對工作有所幫助,2019年了,祝大家新年快樂。 我們就必須要懂得寫指令碼來提高下效率了。希望將來會達到那種程度咯,現在的話,先帶大家從基本開始學起吧。 模擬電話本小程式,從實際去學習:

黑馬程式設計師-----泛型,Map集合

------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! ------- 1.泛型初步 泛型:JDK1.5版本

遍歷Map集合的幾種方式

set password stat class ati put 獲取 map hashmap 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 im

java map集合的知識

con ttr 使用 string 如果 ddd bsp contains 演示 /** * Map用於存儲鍵值對,不允許鍵重復,值可以重復。 * (1)HashMap是一個最常用的Map,它根據鍵的hashCode值存儲數據,根據鍵可以直接獲取它的值,

java模擬而一個話本操作

enum static 全部 ext 電話號碼 .get cep center port 哈哈。大家平時都在使用電話本。以下使用java來模擬而一個簡單的電話本吧... 首先給出聯系人的抽象類 package net.itaem.po; /** * *

ES6中的Set和Map集合

這就是 his 使用場景 ont 最大 urn 受限 我們 ... 前面的話   在ES6標準制定以前,由於可選的集合類型有限,數組使用的又是數值型索引,因而經常被用於創建隊列和棧。如果需要使用非數值型索引,就會用非數組對象創建所需的數據結構,而這就是Set集合與Map集

集合一個簡單的隨機分組,以及集合內元素數量查詢

移除 以及 表示 元素 move spa color 查詢 println 12個人,隨機分為4組 public static void main(String[] args) { List list = new ArrayList();

Map集合總結

int obj ble sem ins 安全 同步 對象 shm Map   將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射一個值 方法    void clear() 從此映射中移除所有映射關系(可選操作)   boolean containsKe

List、Set、Map集合大雜燴

鏈接 collect hid 鍵值 oar text 同步 二分 實現 java集合主要分三種:list、set、map;當中list和set都繼承自Collection接口,兩者最大差別是set不能包括反復元素 list的經常使用實現類有: Ar

jdbc話本項目

times 用戶註冊 arr lis cts oca servlet size adding 整體思路:在登陸之後才能查看自己的電話本,電話本中包含用戶名,聯系人名字,電話,性別,分類; 1、登陸註冊頁面--數據庫User表,註冊登陸使用 2、電話本的前段顯示,用表格和

struts2獲取表單數據之 屬性封裝 模型驅動 表達式封裝 對象封裝到list集合 對象封裝到map集合 五種方便的封裝方式

demo1 submit namespace auto nbsp return admin user pri 一、屬性封裝   屬性封裝是在action裏面設定屬性值,屬性名字一定要和表單中的name一樣,action中extends ActionSupport   dem

MyBatis無限級分類實現的兩種方法--自關聯與map集合

except app exce utf-8 elf findall ldr ati tex 1、這回先創建數據庫吧 下表cid是CategoryId的縮寫,cname是CategoryName的縮寫,pid是parentId的縮寫 無限級分類一般都包含這三個屬性,至少也要包

Map集合

-- try ash 樹結構 映射 ble tab 叠代器 通過 Map集合存儲鍵值對,鍵值不可重復; 註意:long和int都是number的子類,但是在使用long或者int型作為map的key時,那麽在使用key去取響應的value時,也要使用對應的類型去取;如果拿用

map集合按照value從大到小進行排序

sta 二叉 cti edm pri 數據表 iterator 表結構 .so 概述: 基本特點: 該集合存儲鍵值對,而且要保證鍵的惟一性 子類: |--HashTable 底層是哈希數據表結構,不可以使用Null作為鍵或者值;該集合線程是同步的