JAVA高级应用之手机通讯录的实现

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liurongsheng123/article/details/79166770

集合区别

  HashMap 和 HashTable 的区别
  HashMap可以保存null值
  HashTable 不可以保存null值
  HashMap 是线程不安全的
  HashTable 是线程安全的(效率低)


  ArrayList
  数组实现 线程不安全的 常用
  查询快 增删慢
  LinkedList
  链表实现 线程不安全 不常用
  查询慢 增删快
  Vector
  数组实现 线程安全的 被ArrayList替代了


  HashSet
  哈希算法 线程不安全的 作用:去重
  LinkedHashSet
  线程不安全 有序(怎么存的怎么取出来)
  TreeSet
  线程不安全的 作用:排序(两种方法)


 HashMap
 线程不安全的 作用:键位可以去去重
 LinkedHashMap
 线程不安全的 特点:有序(怎么存的怎么取)
 TreeMap
  线程不安全的 作用:键位可以排序

  HashTable
  线程安全的 被HashMap取代 不能保存null值

我的代码

//创建联系人类 和 通讯录管理类 使用map和list实现
//联系人:姓名 年龄 性别 地址 电话
//通讯录管理类:
//1.根据分组查找联系人 并针对姓名进行排序 
//例如 传入B分组 查找出 B分组下 姓名首字母是B的所有联系人
//2.根据电话输出联系人信息
//3.根据性别查找该性别的所有联系人 并且按照年龄降序排序
//4.根据姓名删除某个联系人
//5.删除某个分区的所有联系人 传入B 把姓B的全删了
//6.修改联系人姓名
//7.添加联系人(不上来创建26个键值对)


说明:得到字符串中的大写首字母时,需要导入两个jar包,分别是pinyin4j-2.5.0.jar    PinYinUtil.jar  
用BuildPath建立一下路径后才能使用String firstLetter =  Pinyin4jUtil.getFirstLetter(oldName)方法

package com.lanou3g.bean;


import java.util.ArrayList;
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;


public class LinkManManager {
    private static TreeMap<String, ArrayList<LinkMan>> treeMap = null; 
    private static String name;

    public LinkManManager() {
        super();
        // TODO Auto-generated constructor stub
        treeMap = new TreeMap<>();
    }
    public LinkManManager(String name) {
        this.name = name;
        treeMap = new TreeMap<>();
    }
    public String getName() {
        return name;
    }   
    public static void setName(String name) {
        LinkManManager.name = name;
    }
    public static TreeMap<String, ArrayList<LinkMan>> getTreeMap() {
        return treeMap;
    }

    // 打印treeMap集合
    public  void  printTreeMap() {
        if(treeMap.isEmpty()){
            System.out.println(name + "为空通讯录中无联系人");
            return;
        }
        for(String key : treeMap.keySet()) {
            ArrayList< LinkMan> treeMapList = treeMap.get(key);
            System.out.println(key + "组:");
            for(LinkMan linkMan : treeMapList) {
                System.out.println(linkMan);
            }
        }
    }

    // 往集合treeMap中添加联系人
    public void addLinkManToTreeMap(LinkMan linkMan) {
        if(linkMan == null || linkMan.getName().isEmpty()) {
            System.out.println("联系人信息不全 -- 添加联系人失败");
        }
        String firstLetter = Pinyin4jUtil.getFirstLetter(linkMan.getName());
        String upperCase = firstLetter.toUpperCase();
        if(!treeMap.containsKey(upperCase)) {
            ArrayList<LinkMan> array = new ArrayList<>();
            array.add(linkMan);
            treeMap.put(upperCase, array);
        }else {
            ArrayList<LinkMan> arrays = treeMap.get(firstLetter);
            if(!arrays.contains(linkMan)) {
                arrays.add(linkMan);
            }
        }
    }

    //根据分组查找联系人 并针对姓名进行排序 
    public void searchLinkManByStrAndSortByName(String string){
        if(string == null) {
            System.out.println("分区输入有误 -- 请重新输入");
            return;
        }
        String upperCase = string.toUpperCase();
        if(!treeMap.containsKey(upperCase)) {
            System.out.println("无该分区 -- 分区内无联系人");
            return;
        }
        ArrayList<LinkMan> arrayList = treeMap.get(upperCase);
        TreeSet<LinkMan> treeSet = new TreeSet<>(new sortByName());
        treeSet.addAll(arrayList);
        arrayList.clear();
        arrayList.addAll(treeSet);
        printArrayList(arrayList);
    }

    // 打印arrayList方法
    public void printArrayList(ArrayList<LinkMan> arrayList) {
        for (LinkMan linkMan : arrayList) {
            System.out.println(linkMan);
        }
    }

    // 根据电话输出联系人信息
    public void printByPhone(String phone) {
        if(phone == null) {
            System.out.println("输入电话号码为空");
            return;
        }
        LinkMan linkMan = null;
        for (String string : treeMap.keySet()) {
            ArrayList<LinkMan> arrayList = treeMap.get(string);
            for (LinkMan linkMan1 : arrayList) {
                if(linkMan1.getNumber().equals(phone)) {
                    linkMan = linkMan1;
                }
            }
        }
        if(linkMan == null) {
            System.out.println(phone + " -- 查询失败");
            return;
        }
        System.out.println(linkMan);
    }

    // 根据性别查找该性别的所有联系人 并且按照年龄降序排序
    public void searchBySexAndSortByAge(String sex) {
        if(!(sex.equals("男") || sex.equals("女"))) {
            System.out.println("性别有误 -- 无法查询");
            return;
        }
        ArrayList<LinkMan> arrayList = new ArrayList<>();
        for(String string : treeMap.keySet()) {
            ArrayList<LinkMan> arrayList2 = treeMap.get(string);
            for (LinkMan linkMan : arrayList2) {
                if(linkMan.getSex().equals(sex)) {
                    arrayList.add(linkMan);
                }
            }
        }
        if(arrayList.isEmpty()) {
            System.out.println("无" + sex + "性别的人");
            return;
        }
        TreeSet< LinkMan> treeSet = new TreeSet<>(new sortByAge());
        treeSet.addAll(arrayList);
        arrayList.clear();
        arrayList.addAll(treeSet);
        printArrayList(arrayList);
    }

    // 删除某个分区的所有联系人 传入B 把姓B的全删了
    public void removeByGroup(String group) {
        String upperCase = group.toUpperCase();
        if(!treeMap.containsKey(upperCase)) {
            System.out.println("无此分区");
            return;
        }
        treeMap.remove(upperCase);
        printTreeMap();
    }
    // 根据姓名删除某个联系人
    public void deleteLinkManByName(String name) {
        String firstLetter = Pinyin4jUtil.getFirstLetter(name);
        if(name == "" || !treeMap.containsKey(firstLetter)) {
            System.out.println("姓名不能为空或姓名有误");
            return;
        }
        ArrayList<LinkMan> arrayList = null;
        LinkMan linkMan = null;
        for (String string : treeMap.keySet()) {
            ArrayList<LinkMan> arrayList2 = treeMap.get(string);
            for (LinkMan linkMan2 : arrayList2) {
                if(linkMan2.getName().equals(name)) {
                    linkMan = linkMan2;
                    arrayList = arrayList2;
                }
            }
        }
        if(linkMan == null) {
            System.out.println("此姓名不存在");
            return;
        }
        arrayList.remove(linkMan);
        if(arrayList.isEmpty()) {
            removeByGroup(firstLetter);
        }
    }
    // 修改联系人姓名
    /*1.有老名字的分区
     *      a.有这个老名字进行 修改
     *          1.改名没改首字母(找到这人 调用set方法 直接修改姓名)
     *          2.改名改首字母
     *                  1)把利用老人创建一个新人出来
     *                  2)把老人删了
     *                  3)直接调用添加方法把新人添加进去
     *      b.没这个老名字
     * 2.没有老名字的分区(提示 查无此人 不能修改)
     */
    public void changeLinkManByOldNameAndNewName(String oldName, String newName) {
        String firstLetter = Pinyin4jUtil.getFirstLetter(oldName);
        String firstLetter2 = Pinyin4jUtil.getFirstLetter(newName);

        String oldCase = firstLetter.toUpperCase();
        String newCase = firstLetter2.toUpperCase();
        if(!treeMap.containsKey(oldCase)) {
            System.out.println("该分区不存在 查无此人 无法修改");
            return;
        }
        LinkMan oldman = null;
        for (String string : treeMap.keySet()) {
            ArrayList<LinkMan> arrayList = treeMap.get(string);
            for (LinkMan linkMan1 : arrayList) {
                if(linkMan1.getName().equals(oldName)) {
                    oldman = linkMan1;
                }
            }
        }
        if(oldman == null) {
            System.out.println("在" + oldCase + "分区内 查无此人");
            return;
        }
        if(oldCase.equals(newCase)) {
            oldman.setName(newName);
        }else {
            LinkMan linkMan = oldman;
            deleteLinkManByName(oldName);
            linkMan.setName(newName);
            addLinkManToTreeMap(linkMan);

        }

    }
}
class sortByName implements Comparator<LinkMan>{

    @Override
    public int compare(LinkMan o1, LinkMan o2) {
        // TODO Auto-generated method stub
        int num = o1.getName().compareTo(o2.getName());
        return num == 0 ? 1 : num;
    }

}

class sortByAge implements Comparator<LinkMan>{

    @Override
    public int compare(LinkMan o1, LinkMan o2) {
        // TODO Auto-generated method stub
        int num = o2.getAge() - o1.getAge();
        return num == 0 ? 1 : num;
    }

}
package com.lanou3g.bean;

public class LinkMan {
    //姓名 年龄 性别 地址 电话
    private String name;
    private int age;
    private String sex;
    private String address;
    private String number;
    public LinkMan() {
        super();
        // TODO Auto-generated constructor stub
    }
    public LinkMan(String name, int age, String sex, String address, String number) {
        super();
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.address = address;
        this.number = number;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((address == null) ? 0 : address.hashCode());
        result = prime * result + age;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + ((number == null) ? 0 : number.hashCode());
        result = prime * result + ((sex == null) ? 0 : sex.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        LinkMan other = (LinkMan) obj;
        if (address == null) {
            if (other.address != null)
                return false;
        } else if (!address.equals(other.address))
            return false;
        if (age != other.age)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        if (number == null) {
            if (other.number != null)
                return false;
        } else if (!number.equals(other.number))
            return false;
        if (sex == null) {
            if (other.sex != null)
                return false;
        } else if (!sex.equals(other.sex))
            return false;
        return true;
    }
    @Override
    public String toString() {
        return "[name=" + name + ", age=" + age + ", sex=" + sex + ", address=" + address + ", number=" + number
                + "]";
    }


}
package com.lanou3g.bean;

import java.util.ArrayList;
import java.util.TreeMap;

public class Test {
    public static void main(String[] args) {
        LinkManManager manager = new LinkManManager("中华通讯录");
        //manager.printTreeMap();
        manager.addLinkManToTreeMap(new LinkMan("盖伦", 20, "男", "德玛西亚", "14532"));
        manager.addLinkManToTreeMap(new LinkMan("剑姬", 12, "女", "圣光之城", "2453"));
        manager.addLinkManToTreeMap(new LinkMan("剑圣", 18, "男", "圣光之城", "2453"));
        manager.addLinkManToTreeMap(new LinkMan("剑魔", 15, "男", "迷失之城", "2453"));
        manager.addLinkManToTreeMap(new LinkMan("赵信", 19, "男", "迷失之城", "5741"));
        manager.addLinkManToTreeMap(new LinkMan("蛮王", 17, "女", "德玛西亚", "8553"));
        //manager.addLinkManToTreeMap(new LinkMan("无极", 17, "女", "德玛西亚", "8553"));
        manager.printTreeMap();
        System.out.println("*************");
        //manager.searchLinkManByStrAndSortByName("j");
        //manager.printByPhone("5741");
        //manager.searchBySexAndSortByAge("男");
        //manager.removeByGroup("j");
        //manager.deleteLinkManByName("蛮王");
        //System.out.println("*************");
        //manager.deleteLinkManByName("赵信");
        manager.changeLinkManByOldNameAndNewName("蛮王", "无极");
        System.out.println("++++");
        manager.printTreeMap();
    }
}

老师的代码

//创建联系人类 和 通讯录管理类 使用map和list实现
//联系人:姓名 年龄 性别 地址 电话
//通讯录管理类:
//1.根据分组查找联系人 并针对姓名进行排序 
//例如 传入B分组 查找出 B分组下 姓名首字母是B的所有联系人
//2.根据电话输出联系人信息
//3.根据性别查找该性别的所有联系人 并且按照年龄降序排序
//4.根据姓名删除某个联系人
//5.删除某个分区的所有联系人 传入B 把姓B的全删了
//6.修改联系人姓名
//7.添加联系人(不上来创建26个键值对)
package com.lanou3g;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

import com.lanou3g.bean.Pinyin4jUtil;

public class LinkManManager {
    // 声明一个TreeMap保存整个通讯录
    private TreeMap<String, ArrayList<LinkMan>> map;

    public LinkManManager() {
        super();    
        map = new TreeMap<>();
    }

    // 现在我不希望外界修改通讯录 不提供set方法
    public TreeMap<String, ArrayList<LinkMan>> getMap() {
        return map;
    }

    // 遍历map的方法
    public void printMap() {
        System.out.println("*****************");
        for(String key : map.keySet()) {
            // 通过key找对应的value value是个数组
            ArrayList<LinkMan> list = map.get(key);
            // 打印分组
            System.out.println(key + "分组:");
            //  遍历每一个list
            for(LinkMan linkMan : list) {
                System.out.println(linkMan);
            }
        }
        System.out.println("*****************");
    }

    // 添加联系人
    /*
     * 分区存在
     * 分区不存在
     * 直接利用分区名字(key) 取出对应数组
     * 把联系人存进去
     * 
     * 分区不存在
     * 创建个数组 把人放进去
     * 把人和对应分区 放进map中
     */
    public void addLinkMan(LinkMan linkMan){
        // 防御式判断
        if(linkMan == null || linkMan.getName().isEmpty()) {
            // 直接结束方法
            return;
        }
        // 把名字首字母取出来
        String firstLetter = 
                Pinyin4jUtil.getFirstLetter(linkMan.getName());
        // 判断这个key是否存在map中
        if(!map.containsKey(firstLetter)) {
            // 不存在
            // 创建数组
            ArrayList<LinkMan> list = new ArrayList<>();
            list.add(linkMan);
            // 把数组和首字母 放进map中
            map.put(firstLetter, list);
        }else {
            // 这个键值对存在
            // 用key把对应数组取出来
            ArrayList<LinkMan> arrayList = map.get(firstLetter);
            // 把人放进去(去重)
            if(!arrayList.contains(linkMan)) {      
                // 数组中不包含这个人的时候再添加
                arrayList.add(linkMan);
            }
            // 这里不用进行重新覆盖 因为arrayList不是重新new出来的
            // 保存就是map集合中的数组
            // 操作的是同一个空间
            // 把值重新覆盖
            // map.put(firstLetter, arrayList);     
        }

    }
    // 根据电话输出联系人信息
    // 遍历整个map寻找联系人 
    // 1.没找到
    // 2.找到输出联系人的信息
    public void findLinkManByPhone(String phone) {
        if(phone.isEmpty() || phone == null) {
            return;
        }
        // 记录法
        // 定义一个空的引用 来记录找到
        LinkMan linkMan = null;
        // 查找联系人
        for(String str : map.keySet()) {
            // 找出对应arrayList
            ArrayList<LinkMan> arrayList = map.get(str);
            // 遍历数组 
            for(LinkMan man : arrayList) {
                // 找出号码相同的
                if(man.getPhone().equals(phone)) {
                    // 记录此人
                    linkMan = man;
                }
            }
        }       
        // 判断有没有这个 有就输出信息 没有就进行提示
        if(linkMan == null) {
            System.out.println(phone + "----查无此号");
        }else {
            System.out.println(linkMan);
        }

    }
    // 根据分组查找联系人 并针对姓名进行排序 
    // 1.有这个分组 2.没这个分组
    public void findLinkManByGroup(String group) {
        // 把分组转大写
        String lowerCase = group.toUpperCase();
        // 根据分组找对应的数组
        if(!map.containsKey(lowerCase)) {
            System.out.println("该分组" + lowerCase + "没有");
            return;
        }
        // 有分组的情况 利用TreeSet排序 操作原arrayList
        ArrayList<LinkMan> arrayList = map.get(lowerCase);
        // 创建treeSet
        TreeSet<LinkMan> set = new TreeSet<>(new SortByName());
        set.addAll(arrayList);
        arrayList.clear();
        arrayList.addAll(set);
        printList(arrayList);
    }
    //  遍历arrayList方法
    public void printList(ArrayList<LinkMan> list) {
        for(LinkMan linkMan : list) {
            System.out.println(linkMan);
        }
    }
    // 根据性别查找改性别的所有联系人 并且安装年龄降序排序
    public void findLinkMansByGender(String gender) {
        // 判断传的是不是男和女 妖/中性不行
        if(!(gender.equals("男") || gender.equals("女"))) {
            System.out.println("该性别" + gender + "无法查询");
            return;
        }
        // 创建一个 容器 保存多个联系人
        ArrayList<LinkMan>  genderlist = new ArrayList<>();
        // 遍历集合
        for(String key : map.keySet()) {
            ArrayList<LinkMan> arrayList = map.get(key);
            for(LinkMan linkMan : arrayList) {
                // 判断性别是否相同 添加到数组中
                if(gender.equals(linkMan.getGender())) {
                    genderlist.add(linkMan);
                }
            }
        }
        // 判断数组中 是否有人
        if(genderlist.isEmpty()) {
            System.out.println("该分组" + gender + "没人");
            return;
        }
        TreeSet<LinkMan> treeSet = new TreeSet<>(new SortByAge());
        treeSet.addAll(genderlist);
        genderlist.clear();
        genderlist.addAll(treeSet);
        printList(genderlist);
    }
    //删除某个分区的所有联系人
    public void removeGroup(String group) {
        String upperGroup = group.toUpperCase();
        // 判断有没有该分区 有就删了 没有就提示
        if (!map.containsKey(upperGroup)) {
            System.out.println("没有该分区" + upperGroup + "不存在");
            return;
        }
        // 有 就直接删除
        map.remove(upperGroup);
        // 删完打印
        printMap();
    }
    // 根据姓名删除某个联系人
    /*
     * 1.有该名字的联系人
     *   a.分区删除该人之后 没有其他人 需要把分区一起删了
     *   b.分区删除该人之后 还有其他人 不删分区
     * 2.没这个名字的人(提示用户没有)
     */
    public void removeLinkedManByName(String name) {
        // 去除名字的首字母
        String firstLetter = Pinyin4jUtil.getFirstLetter(name);
        if(!map.containsKey(firstLetter)) {
            System.out.println("该分区不存在,没有该联系人");
            return;
        }
        // 记录要删除的人
        LinkMan removeMan = null;
        // 记录删除的人所在的数组
        ArrayList<LinkMan> removeList = null;           
        // 遍历找名字相同的人
        for(String key : map.keySet()) {
            ArrayList<LinkMan> list = map.get(key);
            for(LinkMan linkMan : list) {
                // 名字相同
                if(name.equals(linkMan.getName())) {
                    // 记录要删除的人
                    removeMan = linkMan;
                    // 记录人在的数组
                    removeList = list;
                }
            }
        }
        // 判断有没有这个人
        if(removeMan == null) {
            System.out.println("查无此人");
            return;
        }
        // 把这个人删除
        removeList.remove(removeMan);
        // 判断这个数组是不是空的
        if(removeList.isEmpty()) {
            // 直接把分区删了
            removeGroup(firstLetter);
            return;
        }
        printMap();     
    }
    // 修改联系人姓名
    /*
     * 1.有老名字的分区
     *      a.有这个老名字进行 修改
     *          1.改名没改首字母(找到这人 调用set方法 直接修改姓名)
     *          2.改名改首字母
     *                  1)把利用老人创建一个新人出来
     *                  2)把老人删了
     *                  3)直接调用添加方法把新人添加进去
     *      b.没这个老名字
     * 2.没有老名字的分区(提示 查无此人 不能修改)
     */
    public void setLinkManByOldNameAndNewName(String oldName, String newName) {
        // 把名字转换成首字母
        String oldKey = Pinyin4jUtil.getFirstLetter(oldName);
        String newKey = Pinyin4jUtil.getFirstLetter(newName);
        // 创建引用 保存这个人
        LinkMan oldMan = null;
        if(!map.containsKey(oldKey)) {
            System.out.println("无该" + oldKey + "分区不能修改");
            return;
        }
        // 有老分区(查看有 没有老名字的人)
        ArrayList<LinkMan> oldList = map.get(oldKey);
        for(LinkMan linkMan : oldList) {
            // 对比名字
            if(linkMan.getName().equals(oldName)) {
                // 名字相同 记录此人
                oldMan = linkMan;
            }
        }
        // 判断有没有这个老人
        if(oldMan == null) {
            System.out.println("没有这个名字" + oldName + "的人");
            return;
        }
        // 判断改没改首字母
        if(oldKey.equals(newKey)) {
            // 相等 没改姓
            oldMan.setName(newName);
        }else {
            // 不相等 改姓氏
            // 利用新名字创建新对象出来
            LinkMan newLinkMan = new LinkMan(newName,oldMan.getAge(),oldMan.getGender(),
                    oldMan.getAddress(),oldMan.getPhone());
            // 把老人删了
            removeLinkedManByName(oldName);
            addLinkMan(newLinkMan);


        }


    }
}
// 按年龄降序
class SortByAge implements Comparator<LinkMan>{

    @Override
    public int compare(LinkMan o1, LinkMan o2) {
        // TODO Auto-generated method stub
        int num = o2.getAge() - o1.getAge();
        return num == 0 ? 1 : num;
    }

}
// 按姓名排序
class SortByName implements Comparator<LinkMan>{

    @Override
    public int compare(LinkMan o1, LinkMan o2) {
        int num = o1.getName().compareTo(o2.getName());
        return num == 0 ? 1 : num;
    }   
}
package com.lanou3g;

public class LinkMan {
    private String name;
    private int age;
    private String gender;
    private String address;
    private String phone;
    public LinkMan() {
        super();
        // TODO Auto-generated constructor stub
    }
    public LinkMan(String name, int age, String gender, String address, String phone) {
        super();
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.address = address;
        this.phone = phone;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Override
    public String toString() {
        return "[name=" + name + ", age=" + age + ", gender=" + gender + ", address=" + address + ", phone="
                + phone + "]";
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((address == null) ? 0 : address.hashCode());
        result = prime * result + age;
        result = prime * result + ((gender == null) ? 0 : gender.hashCode());
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + ((phone == null) ? 0 : phone.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        LinkMan other = (LinkMan) obj;
        if (address == null) {
            if (other.address != null)
                return false;
        } else if (!address.equals(other.address))
            return false;
        if (age != other.age)
            return false;
        if (gender == null) {
            if (other.gender != null)
                return false;
        } else if (!gender.equals(other.gender))
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        if (phone == null) {
            if (other.phone != null)
                return false;
        } else if (!phone.equals(other.phone))
            return false;
        return true;
    }

}
package com.lanou3g;
/*
 * 测试类
 */
public class Test {
    public static void main(String[] args) {
        LinkManManager manager = new LinkManManager();
        manager.addLinkMan(new LinkMan("王炸", 15, "男", "就甘露", "adsasd"));
        manager.addLinkMan(new LinkMan("王松", 14, "男", "泗泾路", "adsasd"));
        manager.addLinkMan(new LinkMan("刘忠", 15, "女", "草葫芦", "awwwwsasd"));
        manager.addLinkMan(new LinkMan("谢", 12, "女", "就甘露", "adsasd"));
        manager.addLinkMan(new LinkMan("项羽", 19, "男", "泗泾路", "adsasd"));
        manager.printMap();
        // 根据电话查找联系人 
        //manager.findLinkManByPhone("123453");
        // 根据分组查找联系人
        //manager.findLinkManByGroup("W");
        //manager.findLinkMansByGender("女");
        //manager.removeGroup("A");
        // 删除联系人根据名字
        //manager.removeLinkedManByName("刘建忠");
        manager.setLinkManByOldNameAndNewName("谢", "成龙");
        manager.printMap();
    }
}
展开阅读全文

没有更多推荐了,返回首页