2015-03-18 2 views
0

, поэтому я смог успешно разместить объекты в своей карте хэша, но у меня возникли проблемы с возвратом объекта. Когда я использовал ArrayList для этого же проекта, я просто отображается его следующим способом:Возвращаемое значение HashMap

public void displayDetails(int currentItem) { 
    accountIDTextField.setText(table.get(currentItem).getAccountID()+""); 
    accountNumberTextField.setText(table.get(currentItem).getAccountNumber()); 
    surnameTextField.setText(table.get(currentItem).getSurname()); 
    accountTypeTextField.setText(table.get(currentItem).getAccountType()); 
} 

И нажав на кнопку «первый» будет идти на номер 1 в списке.

first.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      currentItem = 1; 
      displayDetails(currentItem);    
     } 
    }); 

Что касается моего хэширования, я использовал ACCOUNTNUMBER в качестве ключа, (хэш с помощью функции% по модулю)

Работа в обратном направлении, я могу получить ACCOUNTID, когда я прохожу в ACCOUNTNUMBER как параметр в методе get().

hashMap.get(12345678).getAccountID(); 

Но как я возвращаю ACCOUNTID, если я просто хочу, чтобы получить первый объект, хранящийся в хэш-карте (т.е. получить ACCOUNTID, не зная ACCOUNTNUMBER)?

(AccountID представляет собой целое число уникальных для конкретной учетной записи и будет автоматически генерируется при создании новой записи счета)

Извините, если это не сформулировано очень хорошо, я все еще пытаюсь получить мою голову вокруг Java и OOP в целом. Любая помощь будет принята с благодарностью. Спасибо

+0

Мне было бы любопытно знать, если вам нужно как номер счета и идентификатор учетной записи? –

ответ

1

Надеюсь, я понял вас правильно. получать только первый элемент в HashMap будет что-то вроде:

Map<String, String> myhashmap = new HashMap<String, String>(); 
myhashmap.entrySet().iterator().next(); 
+0

Просто укажите, что это приведет к предупреждению о том, что тип является сырым, но это никогда не было проблемой для небольших задач, таких как это. – ha9u63ar

+0

Спасибо, что возвращает второй элемент в HashMap? И мне нужно, в конце концов, добавить «следующие» предыдущие и последние кнопки. Это невозможно сделать так же, как нет? – superwelling

0

Вы можете получить содержимое карты с помощью Map.values ​​(). Я бы не получил доступ к значению, основанному на его заказе на карте, потому что заказ не гарантируется. Вы должны дать каждому определенное число. Тогда вы можете получить доступ к ним как:

Object o = map.values().get(id); 

, чтобы получить первый:

Object o = map.values().get(0); 
+0

Возможно, вы не знаете идентификатор первого элемента. @ Ответ TwelveDollar показывает, как вы можете получить его, не зная ни одного ключа (первый элемент). – ha9u63ar

Смежные вопросы