Java hashmap вопрос
У меня есть код
import java.util.*; class factory{ int a; int b; public factory(int a,int b){ this.a = a; this.b = b; } public int getA() { return a; } public int getB() { return b; } } public class JavaApplication2 { public static void main(String[] args) { Map<Integer,factory> base = new HashMap<>(); Scanner in; in = new Scanner(System.in); int entityCount = in.nextInt(); for (int i = 0; i < entityCount; i++) { int entityId = in.nextInt(); int arg1 = in.nextInt(); base.put(entityId, new factory(entityId,arg1)); } base.values().forEach((factory _item) -> { HERE if }); } }
я добавляю значение для exemple
2
1 2
3 4
как проверить значение из значения entityId 0 a(которое равно 1) со значением entityid 1 b(которое равно 4).
на этом фото вы найдете более конкретное то, что я хочу сравнить
http://oi66.tinypic.com/j7enar.jpg
Что я уже пробовал:
я должен попробовать
base.values().iterator()но я получаю
java.util.HashMap$ValueIterator@e9e54c2 java.util.HashMap$ValueIterator@65ab7765
Richard MacCutchan
Вам нужно извлечь каждый заводской объект и сравнить их друг с другом. То forEach
конструкция может быть не лучшим выбором операции.
soulbog
да, но как? этого я не знаю
Richard MacCutchan
Вероятно, лучше использовать итератор, как описано в разделе HashMap в Java с примером[^].
soulbog
если использовать это, мне нужно сделать запись и итератор. я опубликовал более короткое решение в answear..