如何检查存储在哈希图中的对象中是否存在字符串?

麦克林·平托

我创建了一个带有3个参数的Employee类。

  1. ID
  2. 姓名
  3. 年龄

要求:根据名称搜索。在这种情况下,所有员工都有唯一的名称。必须添加键为id的对象。在极少数情况下,需要根据名称进行搜索。

我做了什么 :

在该类中,我将重写hashCode和Equals方法。

我将这些对象的列表添加到哈希图中,其ID为键,值作为Employee对象

但是在添加或从哈希图搜索时,这两种方法都不会被调用

那么,在hasmap上这些方法的用途是什么?

员工阶层

public class Employee {

    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int hashCode() {
        return name.hashCode();
    }

    public boolean equals(Employee emp) {
        if (emp == null)
            return false;
        else if (emp.name.equalsIgnoreCase(this.name))
            return true;
        else
            return false;
    }
}

主要方法:

public class HashMapTest {

    public static void main(String[] args) {

        Employee emp1=new Employee();
        emp1.setId(1);
        emp1.setName("Maclean");
        emp1.setAge(24);

        Employee emp2=new Employee();
        emp2.setId(2);
        emp2.setName("Sampath");
        emp2.setAge(25);

        Employee emp3=new Employee();
        emp3.setId(3);
        emp3.setName("Achar");
        emp3.setAge(27);

        Employee emp4=new Employee();
        emp4.setId(4);
        emp4.setName("Sudheer");
        emp4.setAge(25);

        Employee emp5=new Employee();
        emp5.setId(5);
        emp5.setName("Kunder");
        emp5.setAge(25);

        HashMap<Integer, Employee> empmap=new HashMap();
        empmap.put(emp1.getId(), emp1);
        empmap.put(emp2.getId(), emp2);
        empmap.put(emp3.getId(), emp3);
        empmap.put(emp4.getId(), emp4);
        empmap.put(emp5.getId(), emp5);

        Employee emp=new Employee();
        emp.setName("Maclean");
        System.out.println(empmap.containsValue(emp));

        System.exit(1);
    }

}

更新解决方案:

感谢所有的答案。

1.仅当Key是一个对象并且该方法存在于Key类中时,hashCode方法才被调用

2. Equals(Employee emp)导致函数重载而不是覆盖。我应该使用equals(Object o)

更改代码以解决问题

@Override
public boolean equals(Object o) {
    if (o == null)
        return false;
    if (!(o instanceof Employee))
        return false;

    Employee emp = (Employee) o;
    if (emp.name.equalsIgnoreCase(this.name))
        return true;
    else
        return false;
}
尼克

您没有重写需要执行的Object.equals(Object o)。您正在超载。这就是为什么它没有被调用的原因。

试试这个equals():

public boolean equals(Object o) {
    if (o == null)
        return false;
    if (!(o instanceof Employee))
        return false;

    Employee emp = (Employee) o;
    if (emp.name.equalsIgnoreCase(this.name))
        return true;
    else
        return false;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查存储在哈希图中的对象中是否存在字符串?

来自分类Dev

将字符串存储到哈希图中

来自分类Dev

如何分配字符串值并将其存储在哈希图中然后单独检索?

来自分类Dev

如何用哈希图中的char替换字符串?

来自分类Dev

如何在哈希图中获取字符串和哈希图的混合值

来自分类Dev

检查哈希图中的值是否已经存在

来自分类Dev

更新哈希图中的字符串值

来自分类Dev

如何检查对象中是否存在相同的字符串?

来自分类Dev

如何检查字符串中是否存在“ @”

来自分类Dev

如何检查php中是否存在字符串

来自分类Dev

如何检查字符串中是否存在行?

来自分类Dev

如何检查DataGridView中是否存在字符串值

来自分类Dev

如何检查字符串中是否存在“#”标签?

来自分类Dev

检查哈希表的键中是否存在字符串的一部分

来自分类Dev

如何检查dynamodb中设置的字符串中是否存在字符串

来自分类Dev

如何检查列中的字符串中是否存在字符串

来自分类Dev

如何检查在dynamodb中设置的字符串中是否存在字符串

来自分类Dev

如何检查字符串枚举中是否存在字符串?

来自分类Dev

遍历哈希图的哈希图以检索Java中的字符串值

来自分类Dev

如何使用哈希图从Java中的Unicode字符串中删除重音符号?

来自分类Dev

如何使用哈希图从Java中的Unicode字符串中删除重音符号?

来自分类Dev

如何检查字符串列表及其索引中是否存在特定字符串

来自分类Dev

如何从URL查询参数中检查Rails参数哈希是否包含双引号字符串?

来自分类Dev

如何有效地搜索哈希图中所有值的子字符串?

来自分类Dev

如何有效地搜索哈希图中所有值的子字符串?

来自分类Dev

如何验证哈希表中是否已存在字符串?爪哇

来自分类Dev

检查数组中的字符是否存在字符串错误

来自分类Dev

检查数组中的字符是否存在字符串错误

来自分类Dev

如何使用其他哈希图的对象在哈希图中定义哈希图

Related 相关文章

  1. 1

    如何检查存储在哈希图中的对象中是否存在字符串?

  2. 2

    将字符串存储到哈希图中

  3. 3

    如何分配字符串值并将其存储在哈希图中然后单独检索?

  4. 4

    如何用哈希图中的char替换字符串?

  5. 5

    如何在哈希图中获取字符串和哈希图的混合值

  6. 6

    检查哈希图中的值是否已经存在

  7. 7

    更新哈希图中的字符串值

  8. 8

    如何检查对象中是否存在相同的字符串?

  9. 9

    如何检查字符串中是否存在“ @”

  10. 10

    如何检查php中是否存在字符串

  11. 11

    如何检查字符串中是否存在行?

  12. 12

    如何检查DataGridView中是否存在字符串值

  13. 13

    如何检查字符串中是否存在“#”标签?

  14. 14

    检查哈希表的键中是否存在字符串的一部分

  15. 15

    如何检查dynamodb中设置的字符串中是否存在字符串

  16. 16

    如何检查列中的字符串中是否存在字符串

  17. 17

    如何检查在dynamodb中设置的字符串中是否存在字符串

  18. 18

    如何检查字符串枚举中是否存在字符串?

  19. 19

    遍历哈希图的哈希图以检索Java中的字符串值

  20. 20

    如何使用哈希图从Java中的Unicode字符串中删除重音符号?

  21. 21

    如何使用哈希图从Java中的Unicode字符串中删除重音符号?

  22. 22

    如何检查字符串列表及其索引中是否存在特定字符串

  23. 23

    如何从URL查询参数中检查Rails参数哈希是否包含双引号字符串?

  24. 24

    如何有效地搜索哈希图中所有值的子字符串?

  25. 25

    如何有效地搜索哈希图中所有值的子字符串?

  26. 26

    如何验证哈希表中是否已存在字符串?爪哇

  27. 27

    检查数组中的字符是否存在字符串错误

  28. 28

    检查数组中的字符是否存在字符串错误

  29. 29

    如何使用其他哈希图的对象在哈希图中定义哈希图

热门标签

归档