amazon 设计 番外篇 1.

电话簿设计与实现
本文介绍了一个简单的电话簿设计,包括电话簿条目的增删改查等基本操作,并使用Java实现了电话簿类及其核心功能。文章还展示了如何通过TreeSet进行条目排序,以及如何检查电话簿是否已满。

Design a phone book.

 

package phonebook;

public class PhoneBookEntry {

    private String name;
    private int number;
    
    public PhoneBookEntry(String name, int number) {
       this.name = name;
       this.number = number;
    }
    
    public void changeNumber(int newnum) {
            number = newnum;
    }
    
    public String getName(){
        return name;
    }
    public int getNumber(){
        return number;
    }
    // Changes the last name for the current object to newlastname.
    public void changeLastName(String newlastname) {
            name = newlastname;
    }

//    @Override
//    public int hashCode() {
//        // TODO Auto-generated method stub
//        return this.name.hashCode();
//    }
//
//    @Override
//    public String toString() {
//        // TODO Auto-generated method stub
//        return name + " " ;
//    }
//
//    @Override
//    public boolean equals(Object obj) {
//        // TODO Auto-generated method stub
//        if(obj == null)
//            return false;
//        if(obj == this)
//            return true;
//        if((getClass()!=obj.getClass()))
//            return false;
//        PhoneBookEntry e = (PhoneBookEntry)obj;
//        return this.getName() == e.getName();
//    }
    
    

}

 

 

package phonebook;

import java.util.Comparator;
import java.util.HashSet;
import java.util.TreeSet;

public class PhoneBook {

    
    public TreeSet<PhoneBookEntry> set;
    // for look up
    private HashMap<String name,PhoneBookEntry>();
    private final int MAX_SIZE = 100;
    /**
     * @param args
     */
    public PhoneBook(){
         set = new TreeSet<PhoneBookEntry>(new myCompare());
    }
    
    public void print(){
        for(PhoneBookEntry entry : set)
            System.out.println(entry.getName()+ " " + entry.getNumber());
    }
    
    public boolean isFull(){
        return set.size() > MAX_SIZE; 
    }
    
    public boolean add(String name, int num){
        if(!isFull()){
            PhoneBookEntry e = new PhoneBookEntry(name,num);
            if(set.contains(e)){
            System.out.println("exist");
            return false;
            }
            else
            set.add(e);
            return true;
        }
        return false;
    }
    
    public boolean remove(String name){
         PhoneBookEntry e = new PhoneBookEntry(name,0);
         if(set.contains(e)){
             System.out.println("remove elm exist");}
         else
             System.out.println("remove elm not exist");
         
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        PhoneBook book = new PhoneBook();
        book.add("a",10);
        book.add("bsdf",10);
        book.add("bd",10);
        book.add("a3",10);
        book.add("a2",10);
        book.add("a22",10);
        book.add("zdfsd",10);
        book.print();
        }
    
    

}

 class myCompare implements Comparator<PhoneBookEntry>{

    @Override
    public int compare(PhoneBookEntry o1, PhoneBookEntry o2) {
        // TODO Auto-generated method stub
        return o1.getName().compareTo(o2.getName());
    }

}

转载于:https://www.cnblogs.com/leetcode/p/3867136.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值