java - 在 Hashcode 中搜索在 Java 中不起作用

标签 java set containers hashset

我有一个

Set tablica = new HashSet();

我想搜索它,所以我写了这样的东西:

public void searchStudentbySurname() {
    int a = tablica.size();
    if (0 >= a) {
        JOptionPane.showMessageDialog(null, "No data");
    } else {
        String S = JOptionPane.showInputDialog(null, "Give me a surname");
        Iterator itr = tablica.iterator();
        while (itr.hasNext()) {
            String str = (String) itr.next();
            if(tablica.equals(S)) {    // this if doesn't work (1)
                JOptionPane.showMessageDialog(null, str);
            }

        }

    }

}

}

我想知道为什么 (1) 不起作用。

最佳答案

您正在将字符串与集合进行比较,因此它无法返回 true。

您可能想将其与 str - str.equals(S) 进行比较,但即使这样也没有必要。 您只需用 tablica.contains(S) 替换整个 while 循环即可。这就是Set的用途。

关于java - 在 Hashcode 中搜索在 Java 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905433/

相关文章:

java - 使用vertx HttpClient连接到https url时vertx ssl握手失败

java - 为什么即使添加到 JScrollPane 中,JTable 也不显示 Jtable 标题?

java - 访问 Set Java 中的数据

operating-system - 操作系统容器与虚拟机有何不同?

python - Python list += iterable 的行为是否记录在任何地方?

amazon-web-services - 使用 AWS ECS 容器进行成本计算

java - PropertySources 中各种源的优先级

java - 在应用程序启动时参数化 Java 属性文件

python - 为什么不可能将集合作为集合的元素?

list - 从嵌套列表中提取有序(根据值)集合,基于列表的最后一项,Java