java使用集合实现通讯录功能

本文实例为大家分享了java使用集合实现通讯录的具体代码,供大家参考,具体内容如下

代码有些繁琐,只适合初学者。

项目1

java通讯录

方法(声明方法的类)

代码块

代码块语法遵循标准markdown代码,例如:

package com.lanou.homwork;

import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Scanner;
import java.util.Set;

class ContactPerson {
  public HashMap map = null;

  public HashMap getMap() {
    return map;
  }

  public void setMap(HashMap map) {
    this.map = map;
  }

  public ContactPerson(HashMap map) {
    super();
    this.map = map;
  }

  public ContactPerson() {

  }

  // 添加联系人
  public HashMap addContact(Person person) {

    // map集合为空
    if (this.map.size() == 0) {

      LinkedList list = new LinkedList();
      // 添加到list集合里
      list.add(person);

      this.map.put(person.getFirstCard(), list);// 添加map集合
      System.out.println(person.getFirstCard());
    } else {
      System.out.println("1111111111111111111");
      // 不为空的时候.首先判断有没有这个分组
      Set keySet = this.map.keySet();// 得到所有的键key
      // 遍历所有键
      for (Object object : keySet) {
        if (person.getFirstCard().equals(object)) {
          Object object2 = this.map.get(person.getFirstCard());
          LinkedList linkedList = (LinkedList) object2;
          // 有这个分组
          linkedList.add(person);
        } else {
          // 没有这个分组
          LinkedList list3 = new LinkedList();
          list3.add(person);
          this.map.put(person.getFirstCard(), list3);
          System.out.println(keySet);
          System.out.println(map.values());
          return map;
        }
      }
    }

    return map;
  }

  // 删除联系人
  public void remove(Person person) {
    // 首先找到那个分组
    // 所有的值
    Set set = this.map.keySet();
    for (Object object : set) {
      String nameString = person.getFirstCard();
      if (nameString.equals(object)) {
        // 找见分组
        Collection collection = this.map.values();
        for (Object object1 : collection) {// list数组
          LinkedList list1 = (LinkedList) object1;// 强制转换
          for (Object object2 : list1) {// 遍历
            Person person2 = (Person) object2;//
            if (person.getNameString().equals(
                person2.getNameString())) {
              if (list1.size() == 1) {
                this.map.remove(person2.getFirstCard());// 删除整个分组
                show();
              } else {
                list1.remove(person2);
                show();
              }

            }
          }
        }
      }
    }
  }

  // 展示方法
  public void show() {
    System.out.println("*************************************");
    System.out.println("请选择功能");
    String[] newArrayStrings = { "1.添加联系人", "2.删除联系人", "3.修改联系人",
        "4.展示所有联系人" };
    for (int i = 0; i < newArrayStrings.length; i++) {
      System.out.println("******" + newArrayStrings[i] + "******");
    }
    System.out.println("*************************************");
    Scanner scanner = new Scanner(System.in);
    int i = scanner.nextInt();
    switch (i) {
    case 1: {
      addPerosn();

    }
      break;
    case 2: {
      removePerson();
    }
      break;
    case 3: {
      upPerson();
    }
      break;
    case 4: {
      printResult(this.map);
    }
      break;

    default:
      break;
    }

  }

  // 修改联系人信息
  public void upPerson() {
    Person person = new Person();
    System.out.println("请输入要修改人的姓名:");
    Scanner scanner = new Scanner(System.in);
    String naString = scanner.next();
    person.setNameString(naString);
    shanChu(person);
  }

  // 输入新的人名,年龄
  public void cc(Person person) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入新的名字:");
    String naString2 = scanner.next();
    System.out.println("请输入新的年龄:");
    int age = scanner.nextInt();
    System.out.println("请输入新的分组");
    String group = scanner.next();
    upPersonMessage(person, naString2, group, age);
  }

  // 判断有没有这个人
  public void shanChu(Person person) {
    if (this.map.isEmpty()) {
      System.out.println("通讯录为空,修改失败");
      System.out.println("是否添加联系人?(Yes/No)");
      Scanner scanner = new Scanner(System.in);
      String nameString = scanner.next();
      if (nameString.equals("Yes")) {
        addPerosn();
      } else {
        System.out.println("傻逼,滚你妈");
      }
    }
    Collection collection = this.map.values();
    for (Object object : collection) {
      LinkedList list = (LinkedList) object;
      for (Object object2 : list) {
        Person person2 = (Person) object2;
        if (person.getNameString().equals(person2.getNameString())) {
          System.out.println("恭喜你,通讯录有此人");
          cc(person);
        } else {
          System.out.println("输入有误");
        }
      }
    }
  }

  public Person addPerosn() {
    Person p = new Person();
    System.out.println("请输入添加人名字:");
    Scanner scanner = new Scanner(System.in);
    // 姓名
    String name = scanner.next();
    // 年龄
    System.out.println("请输入年龄:");
    int age = scanner.nextInt();
    // 分组
    System.out.println("请输入分组名称:");
    String firstCardString = scanner.next();
    p.setFirstCard(firstCardString);
    p.setAge(age);
    p.setNameString(name);
    System.out.println(p);
    addContact(p);
    System.out.println("是否继续操作?y/n");
    if (scanner.next().equals("y")) {
      show();
    } else {
      System.out.println("***************欢迎您下次再来****************");

    }
    return p;
  }

  public Person removePerson() {
    Person p = new Person();
    System.out.println("请输入删除人名字:");
    Scanner scanner = new Scanner(System.in);
    // 姓名
    String name = scanner.next();
    // 年龄
    System.out.println("请输入删除人的年龄:");
    int age = scanner.nextInt();
    // 分组
    System.out.println("请输入删除的分组名称:");
    String firstCardString = scanner.next();
    p.setFirstCard(firstCardString);
    p.setAge(age);
    p.setNameString(name);
    remove(p);
    return p;
  }

  // 修改联系人
  public HashMap upPersonMessage(Person person, String nameString,
      String firstCard, int age) {
    // 判断有没有此联系人
    if (this.map.isEmpty()) {
      System.out.println("通讯录为空");
    } else {
      String name = person.getFirstCard();
      // 找联系人
      Collection collection = this.map.values();// 得到所有的值
      for (Object object : collection) {
        LinkedList list = (LinkedList) object;
        for (Object object2 : list) {
          Person p = (Person) object2;
          if (person.getNameString().equals(p.getNameString())) {
            // 相等话,说明有这个人
            System.out.println("有次联系人");
            if (list.size() == 1) {
              this.map.remove(p.getFirstCard());

              Person person2 = new Person();
              person2.setAge(age);
              person2.setFirstCard(firstCard);
              person2.setNameString(nameString);
              LinkedList list2 = new LinkedList();
              list2.add(person2);
              this.map.put(person2.getFirstCard(), list2);
              System.out.println(this.map);
            } else {
              Person person2 = new Person();
              person2.setAge(age);
              person2.setFirstCard(firstCard);
              person2.setNameString(nameString);
              list.add(person2);
              System.out.println(this.map);
            }

          }

        }
      }
    }
    return map;
  }

  // 显示所有的联系人
  public void printResult(HashMap map1) {
    if (map1.isEmpty()) {
      System.out.println("通讯录为空");
    } else {
      System.out.println(map1);
      Scanner scanner = new Scanner(System.in);
      System.out.println("是否继续y/n");
      if (scanner.next().equals("y")) {
        show();
      } else {
        System.out.println("***************欢迎您下次再来****************");

      }
    }
  }
}

class Person {

  private String nameString;
  private String firstCard;
  private int age;

  public String getNameString() {
    return nameString;
  }

  public void setNameString(String nameString) {
    this.nameString = nameString;
  }

  public String getFirstCard() {
    return firstCard;
  }

  public void setFirstCard(String firstCard) {
    this.firstCard = firstCard;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public Person() {
    super();
    // TODO Auto-generated constructor stub
  }

  public Person(String nameString, String firstCard) {
    this.nameString = nameString;
    this.firstCard = firstCard;
  }

  public Person(String nameString, String firstCard, int age) {
    this(nameString, firstCard);
    this.age = age;
  }

  @Override
  public String toString() {
    return "姓名:" + this.getNameString() + "年龄:" + this.age + "分组:"
        + this.firstCard;
  }
}

脚注

项目2

测试类

代码块

代码块语法遵循标准markdown代码,例如:

package com.lanou.homwork;

import java.util.HashMap;

public class TestPerson {

  public static void main(String[] args) {

    HashMap map = new HashMap();
     ContactPerson contactperson = new ContactPerson(map);

     contactperson.show();
  }
}

感谢浏览。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • 图书管理系统java版
  • Java+Mysql学生管理系统源码
  • 一个简陋的java图书管理系统
  • 简单实现Java版学生管理系统
  • java学生信息管理系统设计
  • java联系人管理系统简单设计
  • 相册管理系统(Java表单+xml数据库存储)
  • java实现简单控制台通讯录
  • Java实现XML文件学生通讯录
  • java实现电话本管理系统
(0)

相关推荐

  • java学生信息管理系统设计

    本例的学生信息添加进入数据库的事务(可以提交事务,事务回滚,用本地线程完善) 主页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <htm

  • java实现电话本管理系统

    用JAVA实现一个简单的电话本管理系统,能存储100个人的姓名.性别.年龄.电话等信息,并能对此系统进行增删改查的操作. 部分代码如下: public class Phbook { public static void main(String[] args) { Person personarray[] = new Person[100]; int index = 0; for (int i = 0; i < 100; i++) { System.out.println("电话本管理系统&

  • 相册管理系统(Java表单+xml数据库存储)

    功能文件的上传,下载和管理 技术:1.用xml当做数据库存储信息(dom4j,xpath) 2.Java表单的文件上传和下载 3.文件目录的打散 ( Hash目录是一种优化文件存储性能的方法) 需要的jar包: commons-fileupload-1.2.2.jar.commons-io-2.1.jar.dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar -----------------------------------------------------------

  • Java+Mysql学生管理系统源码

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

  • 图书管理系统java版

    本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出版日期.书号.价格字段.设计一个GUI界面进行书目管理.在该界面上有四个选项卡,分别是查询.插入.删除.修改.点击查询选项卡,出现的界面上有书名.作者.出版社.书号四个文本框,一个按钮和一个只读文本区.文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的"查询"按钮,可以在界面

  • java联系人管理系统简单设计

    本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下 要求:  请使用XML保存数据,完成一个联系人管理系统.       用户必须经过认证登录后方可以使用系统.       注册.增加.删除.查看联系人功能.        分模块进行设计. 两层框架-用户交互层,Dao层.             其他支持层-数据封装层.             工具类-加密,工厂Bean. 开发步骤: 第一步:设计数据结构-XML. 第一步:设计数据结构-XML. 第三步:准备资源并

  • 一个简陋的java图书管理系统

    本文代码为原创一个简陋的管理系统,只做功能的测试.并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: import java.util.Scanner; public class Menu { int Min = 1; int Max = 3; public void getMenu(){ System.out.println("1.显示/2.输入/3.查找"); } public void getFindMenu(){ System.out.println(&qu

  • Java实现XML文件学生通讯录

    java实现学生通讯录,使用XML文件作为数据存储,实现学生编号,姓名,年龄,住址,专业,生日等信息的添加,删除,修改,查找,备份,恢复,专业分类查找等功能. 项目需要导入dom4j.jar包. /* 添加学生记录 */ import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JPa

  • java实现简单控制台通讯录

    通过主菜单对各级子菜单进行控制,并实现添加记录,查找记录,删除记录,修改记录,排序记录,以及退出系统功能的实现.一共六部分的功能模块. 上面的图就是每个模块具有的功能,而且还用到了正则表达式判断输入的是否符合规则,这个系统体现了MVC的设计模式,分工调用很清晰. 主要包含了下面几个类: APP类:程序的主函数类,程序开始的入口 Menu类:里面都是简单页面显示的效果,没有功能的实现. TelNoteRegex类:正则表达式,判断是否输入合格,都在这个方法中. Operate类:业务逻辑类,全部功

  • 简单实现Java版学生管理系统

    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

随机推荐