用集合编写的java通讯录_java使用集合实现通讯录功能

本文演示了如何使用Java集合(HashMap和LinkedList)来创建一个简单的通讯录应用。包括添加、删除和显示联系人等功能,适合初学者学习。
摘要由CSDN通过智能技术生成

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

}

}

感谢浏览。

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值