问题描述
public class Phonebook implements PhonebookInterface {
Map<String, Set<String>> phonebook;
public Phonebook() {
this.phonebook = new HashMap<String, Set<String>>();
}
@Override
public void addNumber(String person, String number) {
if (!phonebook.containsKey(person)) {
phonebook.put(person, new HashSet<String>());
}
phonebook.get(person).add(number);
}
@Override
public void getNumber(String person) {
我想检查一个人是否有多个电话号码,然后打印字符串“ numbers:”,否则只会打印一个。
for (String n : phonebook.get(person)) {
// check if there is more than one phone numbers
if(person has more than one phone numbers){
System.out.println( "numbers :")
System.out.println(n);
} else {
System.out.println(n);
}
}
主班
public static void main(String[] args) {
Phonebook p = new Phonebook();
p.addNumber("Pekka", "014-1234");
p.addNumber("Pekka", "015-5344");
p.getNumber("Pekka");
p.addNumber("Matti", "013-4321");
p.getNumber("Matti");
}
“ Pekka”的预期输出为:
号码:
014-1234
015-5344
“ Matti”的预期输出为:
013-4321
1楼
您可以简单地检查Set
for循环的size
。
public void getNumber(String person) {
if (this.phonebook.get(person)
.size() > 1) {
System.out.println("numbers :");
}
for (final String n : this.phonebook.get(person)) {
System.out.println(n);
}
}
2楼
Set<String> numbers = phonebook.get(person);
if (numbers.size() > 1) {
System.out.println("numbers :");
}
numbers.stream().forEach(System.out::println);