Java HashSet содержит значение, отличное от предполагаемого, а не предопределенное значение - PullRequest
0 голосов
/ 05 мая 2020

Я посмотрел на этот ответ форума Java HashSet <>: вернуть false, если HashSet содержит значения, отличные от указанных

Однако в этом ответе форума параметры предопределены для меня это не.

Я читаю из веб-таблицы, и название другого города может быть любым.

// Задача: если набор содержит что-либо, кроме Сиэтла, сделать это не удалось

public void cityTest() {
    Set<String> citySet = new HashSet<>();
    citySet.add("Seattle");
    citySet.add("Boston");

    //Case 1: Check size and if it is more than 1 we know we got more than 1 city name
    if (citySet.size() > 1) {
        Assert.fail("Expected only Seattle but found more than 1 city");
    }

    //Case 2: See if the set contains any other city name than Seattle
    if (citySet.contains("Seattle") && (!(citySet.contains("Seattle")))) { // This does not work
    Assert.fail("Expected only Seattle but found more than 1 city");
}
    }
} 

Вопрос: Какие logi c можно использовать для случая 2?

Заранее спасибо за ваше время

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Просто сделайте это просто, попробуйте это

if (citySet.size() > 1 || !citySet.contains("Seattle")) {
    Assert.fail("Expected only Seattle but found more than 1 city");
}

спасибо

0 голосов
/ 05 мая 2020

Во втором случае ваше высказывание, если набор городов содержит Сиэтл и не содержит Сиэтла, никогда не вернет истину. можно сказать, что если набор городов содержит Сиэтл, а размер больше 1, это вернет истину, если городов больше.

...