У меня есть эти вложенные хэш-наборы, внутри которых содержатся String
значения.
{{a, b}, {b, c}, {c, e}}
В какой-то момент моего кода я не знаю, имею ли я дело с внутренним хэш-сеттом или внешним.Я пытаюсь определить, используя следующую строку кода:
System.out.println(loopIterator3.next() instanceof String);
//(FYI :Iterator <HashSet> loopIterator3 = hsConc2.iterator();)
Эта строка кода, кажется, генерирует ошибку:
prog.java: 61: ошибка: несовместимаятипы: HashSet не может быть преобразован в String System.out.println (loopIterator3.next () instanceof String);
Когда loopIterator3
действительно пересекает внутренний хэш-набор, я ожидал бы, что это займетСтроковые значения.Почему компилятор считает, что это хэш-сет?Кроме того, почему компилятор думает, что я пытаюсь конвертировать?
Есть мысли / предложения?
import java.util.Arrays;
import java.util.HashSet;
class Scratch {
public static void main(String[] args) {
HashSet<HashSet<String>> hashSets = new HashSet<>(Arrays.asList(newSet("a", "b"), newSet("b", "c"), newSet("c", "e")));
System.out.println(hashSets.iterator().next() instanceof String); //error
System.out.println(hashSets.iterator().next().iterator().next() instanceof String);
}
private static HashSet<String> newSet(String... str) {
return new HashSet<>(Arrays.asList(str));
}
}