Как определить, содержит ли набор наборов другой набор?

Это странно: A - это набор, а B - это набор наборов:

Set <String> A=new HashSet<String>();
Set <Set<String>> B=new HashSet<Set<String>>();

Я добавил к ним вещи, и вывод

System.out.println(A)

:

[evacuated, leave, prepc_behind]

, а вывод

System.out.println(B)

:

[[leave,  to, aux], [auxpass,  were, forced], [leave,  evacuated, prepc_behind]]

как можно видеть, третий элемент набора B равен набору A. Таким образом, гипотетически

if(B.contains(A)){...}

должен возвращать истину, но, по-видимому, это не так. В чем проблема?

Дополнительные сведения:

 Pattern pattern = Pattern.compile("(.*?)\\((.*?)\\-\\d+,(.*?)\\-\\d+\\).*");
    for (int i = 0; i < list.size(); i++) {
        Set <String> tp = new HashSet<String>();
        Matcher m = pattern.matcher(list.get(i).toString());
        if (m.find()) {
            tp.add(m.group(1).toLowerCase());
            tp.add(m.group(2).toLowerCase());
            tp.add(m.group(3).toLowerCase());
        }
        B.add(tp);
    }
    Set <String> A=new HashSet<String>();
    A.add("leave");
    A.add("evacuated");
    A.add("prepc_behind");
    System.out.println(A);
    if(B.contains(A)){
    System.out.println("B contains A");
}
6
задан Marcus 12 December 2011 в 01:07
поделиться