当前位置: 代码迷 >> java >> 如何检查地图中有多少HashSet >
  详细解决方案

如何检查地图中有多少HashSet >

热度:156   发布时间:2023-08-04 09:35:14.0
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

您可以简单地检查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);
    }
  }
Set<String> numbers = phonebook.get(person);
if (numbers.size() > 1) {
  System.out.println("numbers :");
}
numbers.stream().forEach(System.out::println);
  相关解决方案