Contact--联系人接口
public interface ContactService {
//添加联系人
void add(Scanner scanner, Map<String, List<String>> hashMap);
//查看联系人
void check(Scanner scanner, Map<String, List<String>> hashMap);
//删除联系人
void remove(Scanner scanner, Map<String, List<String>> hashMap);
//修改联系人
void modify(Scanner scanner, Map<String, List<String>> hashMap);
}
ContactService--联系人实现类接口
public class ContactServiceImpl implements ContactService {
//添加联系人
@Override
public void add(Scanner scanner, Map<String, List<String>> hashMap) {
System.out.println("请输入联系人姓名");
String name = scanner.next();
//创建List集合对象
List<String> list = new ArrayList<>();
while (true){
System.out.println("请输入联系人电话");
String phone = scanner.next();
list.add(phone);
System.out.println("是否继续录入电话? y|n");
String s = scanner.next();
if (!s.equals("y")){
break;
}
}
hashMap.put(name,list);
}
//查看联系人
@Override
public void check(Scanner scanner, Map<String, List<String>> hashMap) {
showContact(hashMap);
System.out.println("请选择查看电话号码的联系人");
String name = scanner.next();
//通过key获取value
List<String> list = hashMap.get(name);
for (String s : list) {
System.out.println(s);
}
}
//删除联系人
@Override
public void remove(Scanner scanner, Map<String, List<String>> hashMap) {
showContact(hashMap);
System.out.println("请输入要删除的联系人姓名");
String name = scanner.next();
//调用remove方法
hashMap.remove(name);
}
//修改联系人
@Override
public void modify(Scanner scanner, Map<String, List<String>> hashMap) {
showContact(hashMap);
System.out.println("请输入要修改的联系人姓名");
String name = scanner.next();
List<String> list = hashMap.get(name);
for (int i = 0; i < list.size(); i++) {
System.out.println(i+": "+list.get(i));
}
System.out.println("请输入要修改电话号码的编码");
int i = scanner.nextInt();
System.out.println("请输入新的电话号码");
String phone = scanner.next();
list.set(i,phone);
}
//展示所有联系人姓名
private void showContact(Map<String, List<String>> hashMap){
//查看所有所有联系人姓名 获取key
Set<String> keySet = hashMap.keySet();
System.out.println("\n所有联系人");
for (String s : keySet) {
System.out.println("\t"+s);
}
}
}
MenuService --菜单接口
public interface MenuService {
//展示菜单
void showMenu();
}
MenuService Impl---菜单实现类接口
public class MenuServiceImpl implements MenuService {
@Override
public void showMenu() {
//创建集合对象
Map<String, List<String>> hashMap = new HashMap<>();
//创建联系人实现类对象
ContactService contactService = new ContactServiceImpl();
//控制台
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用电话本系统");
o: while (true){
System.out.println("\n1.查看联系人");
System.out.println("2.添加联系人");
System.out.println("3.删除联系人");
System.out.println("4.修改联系人");
System.out.println("5.退出");
int i = scanner.nextInt();
switch (i){
case 1:
contactService.check(scanner,hashMap);
break;
case 2:
contactService.add(scanner,hashMap);
break;
case 3:
contactService.remove(scanner,hashMap);
break;
case 4:
contactService.modify(scanner,hashMap);
break;
case 5:
System.out.println("再见,欢迎您再次使用");
break o;
}
}
}
}
测试类
TestMenuServiceImpl
public class TestMenuServiceImpl {
public static void main(String[] args) {
MenuServiceImpl menuService = new MenuServiceImpl();
menuService.showMenu();
}
}