您首先添加的是空哈希集,如果布尔测试不好,则只允许有一个哈希集表明您的第二个哈希集:
HashSet<Integer> hash = new HashSet<>();
int q =Math.abs(y-u);
if(y!=u && q==1 ) {
hash.add(seq[y]);
hash.add(seq[u]);
}
if(hashSets.add(hash)){
System.out.println(seq[y]+" "+seq[u]);
count++;
}
相反,将所有内容放在第一个if块中:
HashSet<Integer> hash = new HashSet<>();
int q = Math.abs(y-u);
if(y != u && q == 1 ) {
hash.add(seq[y]);
hash.add(seq[u]);
System.out.println(seq[y] + " " + seq[u]);
count++;
}
注:为什么要测试
y != u
从那以后
q == 1
Y
不能
等于u
更好的是:
if (q == 1) {
hash.add(seq[y]);
hash.add(seq[u]);
System.out.println(seq[y] + " " + seq[u]);
count++;
}