有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中从HashMap获取对象

当给定密钥时,我试图从HashMap中获得测试对象的速度,但我不太确定如何做到这一点。我试过这种方法,但它是错误的:

hash.values().getSpeed();

有什么帮助吗?谢谢

class Test {

            private String id;
            private String name;
            private int speed;

            public Test(String id, String name, int speed) {
                this.id = id;
                this.name = name;
                this.speed = speed;

            }

            public String getId() {
                return id;
            }

            public String getName() {
                return name;

            }

            public int getSpeed() {
                return speed;
            }
        }    
    public class Driver {    
    public static void main(String[] args) {
        HashMap<String, Test> hash = new HashMap<String, Test>();

            Test c1;
            Test c2;

            c1 = new Test("Z", "B", 4);
            c2 = new Test("Y", "D", 7);
            hash.put("A", c1);
            hash.put("C", c2);
    }
}

共 (6) 个答案

  1. # 1 楼答案

    values()方法返回包含在HashMap对象中的的集合。可以使用for loop遍历values集合

    for(Test t:hash.values())
    {
      System.out.println(t.getSpeed());
    }
    
  2. # 2 楼答案

    public class Driver {    
        public static void main(String[] args) {
            HashMap<String, Test> hash = new HashMap<String, Test>();
            Test c1;
            Test c2;
            c1 = new Test("A", "Maruthi", 4);
            c2 = new Test("B", "Toyota", 7);
            hash.put("A", c1);
            hash.put("B", c2);
            for(Test t:hash.values()) {
              System.out.println(t.getSpeed() + " " + t.getId() + " " + t.getName());
            }
        }
    }
    
  3. # 3 楼答案

    hash.get("A"),或者更一般地:hash.get(key),其中keyhash.put(key, value)调用的第一个参数

  4. # 4 楼答案

    Test c1;
    Test c2;
    
    c1 = new Test("Z", "B", 4);
    c2 = new Test("Y", "D", 7);
    hash.put("A", c1);
    hash.put("C", c2);
    
    Test getC1 = (Test)hash.get("A");
    Test getC2 = (Test)hash.get("C");
    
  5. # 5 楼答案

    getput相反。所以只要hash.get("C");就会给你c1等等

    我建议你在发布之前更彻底地查看一下你使用的类的Javadoc

  6. # 6 楼答案

    Map界面中有一个方法,我认为它具有以下签名+返回类型:

    E get(T key);