首页 > 编程 > Java > 正文

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

2019-11-26 10:15:24
字体:
来源:转载
供稿:网友

本文实例为大家分享了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();  }}

感谢浏览。

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表