Reputation: 33
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) {
I want to check if a person has more than one phonenumbers, then print string "numbers : " else, it will only print one.
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");
}
numbers :
014-1234
015-5344
013-4321
Upvotes: 0
Views: 80
Reputation: 328
Set<String> numbers = phonebook.get(person);
if (numbers.size() > 1) {
System.out.println("numbers :");
}
numbers.stream().forEach(System.out::println);
Upvotes: 1
Reputation: 1001
You can simply check the size
of Set
before for loop.
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);
}
}
Upvotes: 1