哈希集计数比较 Java
HashSet Count Comparison Java
我想要实现的是计算输入中具有相同值的字符串的数量。
Scanner reader = new Scanner(System.in);
Set group1 = new HashSet();
Set group2 = new HashSet();
Set self = new HashSet();
for (int i = 1; i <= 3; i++) {
System.out.print("Enter birt month " + i + ": ");
group1.add(reader.next());
}
for (int i = 1; i <= 3; i++) {
System.out.print("Enter birt month " + i + ": ");
group2.add(reader.next());
}
System.out.print("Enter your birth month: ");
self.add(reader.next());
if (group1.contains(self) || group2.contains(self)) {
count++;
}
System.out.println("You have the same birth month with " + count + " of your classmate.");
但是我没有得到我应该有的值,我得到的是即使 group1
或 group2
与 HashSet
具有相同的值名为 self
的计数器没有上升,它保持为 0,我不知道为什么。任何提示或请帮助我如何做到这一点。我还尝试将 if 语句反之亦然 self.contains(group1) || self.contains(group2);
以确定自身是否具有相同的 group1 或 group2
已解决!!
我只需要使用 containsAll
如果 group1
和 group2
在名为 self
的集合中,它将读取集合
所以,你的问题是这样的。
group1.contains(self)
检查对象 self
是否存在于 group1 中,这里不是这种情况。
在这里,您想将它与集合 self
进行比较。
将 group1.contains(self)
更改为 group1.containsAll(self)
。
此外,我发现的另一个问题是,您的递增计数变量仅一次。我的建议是,如果条件如下,请使用 2,
int count = 0;
if (group1.containsAll(self)) {
count++;
}
if (group2.containsAll(self)) {
count++;
}
如果两个 Set 都具有“self”
,则上述条件会得到注意
我想要实现的是计算输入中具有相同值的字符串的数量。
Scanner reader = new Scanner(System.in);
Set group1 = new HashSet();
Set group2 = new HashSet();
Set self = new HashSet();
for (int i = 1; i <= 3; i++) {
System.out.print("Enter birt month " + i + ": ");
group1.add(reader.next());
}
for (int i = 1; i <= 3; i++) {
System.out.print("Enter birt month " + i + ": ");
group2.add(reader.next());
}
System.out.print("Enter your birth month: ");
self.add(reader.next());
if (group1.contains(self) || group2.contains(self)) {
count++;
}
System.out.println("You have the same birth month with " + count + " of your classmate.");
但是我没有得到我应该有的值,我得到的是即使 group1
或 group2
与 HashSet
具有相同的值名为 self
的计数器没有上升,它保持为 0,我不知道为什么。任何提示或请帮助我如何做到这一点。我还尝试将 if 语句反之亦然 self.contains(group1) || self.contains(group2);
以确定自身是否具有相同的 group1 或 group2
已解决!!
我只需要使用 containsAll
如果 group1
和 group2
在名为 self
所以,你的问题是这样的。
group1.contains(self)
检查对象 self
是否存在于 group1 中,这里不是这种情况。
在这里,您想将它与集合 self
进行比较。
将 group1.contains(self)
更改为 group1.containsAll(self)
。
此外,我发现的另一个问题是,您的递增计数变量仅一次。我的建议是,如果条件如下,请使用 2,
int count = 0;
if (group1.containsAll(self)) {
count++;
}
if (group2.containsAll(self)) {
count++;
}
如果两个 Set 都具有“self”
,则上述条件会得到注意