Использование Java 7 Я ищу способ сравнения строки, которую я преобразовал в TreeSet, с другим определенным TreeSet.Сравнение преобразованного TreeSet из String с другим TreeSet Java 7
Вот пример:
public static <T> Set<T> intersection(Set<T> setA, Set<T> setB) {
Set<T> tmp = new TreeSet<T>();
for (T x : setA)
if (setB.contains(x))
tmp.add(x);
return tmp;
}
public static void main(String args[]) {
String str ="A, B, C, D";
Set<String> set3 = new TreeSet(Arrays.asList(str));
TreeSet<String> set1 = new TreeSet<String>();
TreeSet<String> set2 = new TreeSet<String>();
set1.add("A");
set1.add("B");
set1.add("C");
set1.add("D");
set2.add("A");
set2.add("B");
set2.add("C");
set2.add("D");
System.out.println("Intersection: Set 1 & 2: " + intersection(set1, set2));
System.out.println("Intersection: Set 1 & 3: " + intersection(set1, set3));
}
Сравнивая набор на другой набор, который я использовал Set.add, чтобы добавить его элементов, входящих работает, как ожидалось:
Intersection: Set 1 & 2: [A, B, C, D]
вопрос, который я не могу почему я не имею соответствия, когда я сравниваю преобразованный TreeSet от String с другим TreeSet.
Intersection: Set 1 & 3: []
Но когда я печатаю set1 и set3, я нахожу их одинаковыми ??
System.out.println("set1: " + set1);
System.out.println("set3: " + set3);
set1: [A, B, C, D]
set3: [A, B, C, D]
Затем я попытался пройти через строку и добавил каждый элемент к набору, но это тоже не сработало.
System.out.println («Пересечение: (set1 - set3)» + пересечение (set1, convertString2Set (str)));
private static Set convertString2Set(String line) {
List<String> linesList = new ArrayList<String>(Arrays.asList(line));
Set<String> set = new TreeSet<String>();
for (String elme : linesList) {
set.add(elme);
}
return set;
}
.. посмотрите на фактическое содержимое и размер вашего set3. – njzk2