У меня есть три HashSets с разными людьми, которые посетили разные страны.Если я использую Mexico.retainAll (Куба);Затем Mexico.retainAll (Ямайка). Здесь приведен список всех людей, которые посетили все три страны.Которые являются: Оливия, Джон, Уильям
Но тогда, когда я делаю Мексику.retainAll (Куба);затем Mexico.removeAll (Ямайка), чтобы получить только людей, которые посетили Мексику и Кубу, но не Ямайку.Это дает мне пустой набор?
Установлены следующие значения:
HashSet<String> Mexico = new HashSet<String>();
[Оливия, Зоя, Дженнифер, Сьюзан, Джон, Изабелла, Уильям, Джек, Эмма, София]
HashSet<String> Cuba = new HashSet<String>();
[Оливия, Том, Дженнифер, Сьюзан, Джон, Уильям, Джек, Эмма, Ава, София, Лили]
HashSet<String> Jamaica = new HashSet<String>();
[Оливия, Том, Джон, Уильям,Ава, Джессика, Лили]
public static void main(String[] args) throws FileNotFoundException {
visitorPatternNOOP.allThreeCountries();
visitorPatternNOOP.onlyMexicoCuba();
}
public class VisitorPatternNOOP {
public void allThreeCountries (){
Mexico.retainAll(Cuba);
Mexico.retainAll(Jamaica);
Iterator<String> iterator = Mexico.iterator();
System.out.println("These people has visited all three countries: ");
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
public void onlyMexicoCuba (){
Mexico.retainAll(Cuba);
Mexico.removeAll(Jamaica);
Iterator<String> iterator = Mexico.iterator();
System.out.println("These people have visited Mexico and Cuba Only: ");
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
Выход должен был быть [Дженнифер, Сьюзан, Джек, Эмма, София], но я получаю пустой набор.