Как получить объект из HashMap в Java - PullRequest
7 голосов
/ 22 октября 2011

Я пытаюсь получить скорость объекта Test из 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 ]

12 голосов
/ 22 октября 2011
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");
2 голосов
/ 22 октября 2011

Метод values ​​() возвращает коллекцию значений , содержащихся в объекте HashMap. Вы можете использовать for loop для обхода коллекции значений.

for(Test t:hash.values())
{
  System.out.println(t.getSpeed());
}
1 голос
/ 22 октября 2011

hash.get("A") или, в более общем случае: hash.get(key), где key был первым аргументом вызова hash.put(key, value).

1 голос
/ 22 октября 2011

В интерфейсе карты есть метод со следующей сигнатурой + тип возвращаемого значения:

E get(T key);
0 голосов
/ 01 июля 2016
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());
        }
    }
}
0 голосов
/ 22 октября 2011

get является обратной величиной put. Так что hash.get("C"); даст вам c1 и т. Д.

Предлагаю вам просмотреть Javadoc классов, которые вы используете более тщательно, прежде чем публиковать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...