Как получить объект из HashMap в Java
Я пытаюсь получить скорость тестового объекта из 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 ответов
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");
hash.get("A")
, или более обобщенно: hash.get(key)
, где key
первый аргумент hash.put(key, value)
звонок.
get
обратное put
. Так что просто hash.get("C");
даст вам c1
, etc.
Я предлагаю вам просмотреть Javadoc классов, которые вы используете более тщательно перед публикацией.
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());
}
}
}