Đó là kỳ lạ: A là một Set và B là một tập hợp các Bộ:Làm cách nào để phát hiện xem Tập hợp các bộ chứa Tập hợp khác?
Set <String> A=new HashSet<String>();
Set <Set<String>> B=new HashSet<Set<String>>();
tôi thêm những thứ đối với họ và đầu ra của
System.out.println(A)
là:
[evacuated, leave, prepc_behind]
và đầu ra của
System.out.println(B)
.210
là:
[[leave, to, aux], [auxpass, were, forced], [leave, evacuated, prepc_behind]]
vì nó có thể được nhìn thấy, yếu tố thứ ba của bộ B bằng thiết A. Vì vậy, giả thuyết
if(B.contains(A)){...}
nên trở thành sự thật, nhưng dường như nó không. Vấn đề là gì?
Xem chi tiết:
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");
}
Bạn đang thêm các phần tử như thế nào? Bởi vì 'B.contains (A)' trả về true cho tôi. –
Hoạt động như dự định (ví dụ: trả về true) cho tôi. –
Tôi có một vòng lặp for mà giữ thêm bộ B bằng cách sử dụng: B.add (tp); tp là một tập hợp. – Marcus