java - 本地图中的键是一个对象时,如何通过该对象的属性进行搜索?

标签 java methods hashmap maps

假设我有一个 Person 类并创建了该类的一些对象。然后我制作一个映射,其中将 Person 作为键,将字符串作为值。我想创建一个方法,它接受一个名称并查找具有该名称的人,然后打印出具有该名称的键的值

这是我的代码:

import java.util.HashMap;
import java.util.Map;

public class Ex03{

public static void main(String[] args) {

    new Ex03();

}

public Ex03(){

    Person person1 = new Person("Name1", "LastName1", "Address1");
    Person person2 = new Person("Name2", "LastName2", "Address2");
    Person person3 = new Person("Name3", "LastName3", "Address3");
    Person person4 = new Person("Name4", "LastName4", "Address4");

    Map<Person, String> map = new HashMap<>();
    map.put(person1, "12345678901");
    map.put(person2, "12345678902");
    map.put(person3, "12345678903");
    map.put(person4, "12345678904");

    findNumber(map, "Name1");

}

public void findNumber(Map<Person, String> map, String name){

}


class Person {
    String name, lastName, address;

    public Person(){

    }

    public Person(String name, String lastName, String address){

        this.name = name;
        this.lastName = lastName;
        this.address = address;

    }

    @Override
    public String toString() {
        return "Person [name=" + name + ", lastName=" + lastName + ", address=" + address + "]";
    }



} //end of class Person

}

如何使用 findNumber() 方法? 回顾一下:输入一个字符串名称,方法找到具有该名称的 Person 对象,打印出绑定(bind)到具有我们输入的名称的 Person Key 的值。提前致谢

最佳答案

除非您将名称的单独映射存储到 Person 对象,否则您必须循环遍历 keySet映射的,将每个键与字符串进行比较。

关于java - 本地图中的键是一个对象时,如何通过该对象的属性进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075205/

相关文章:

java - 替换 GlobalSettings.onStart 和 onStop

java - 方法返回Java赋值

javascript - 我可以在 Javascript 中为我创建的对象创建自定义事件吗?

java - HashMap:在onClick事件(Frame)期间通过键获取Key-Value

android - Jsoup 输出的 HashMap

java - 获取二叉树特定级别的所有节点

java - 有什么方法可以检查给定的类类型是属于 Java 对象还是自定义对象

python - python中嵌套函数(函数中的函数)的目的

java - libGDX - 使用 HashMap 会导致 Android 手机上的 HeapSize 增加和内存不足

java - OAuth2 oltu 客户端