Witam, czy ktoś może mi wyjaśnić, dlaczego ten blok kodu nie działa?Java StackOverflowError po wprowadzeniu ArrayList do HashMap
ArrayList<Object> list = new ArrayList<Object>();
list.add(list);
HashMap<Object, Integer> map = new HashMap<Object, Integer>();
map.put(list, 1);
Po umieszczeniu listy w mapie, rzuca StackOverFlowError.
Wiem, że ten kod nie ma żadnego sensu, po prostu chcę wiedzieć, dlaczego to nie działa.
Dzięki!
Edit:
StackTrace:
Exception in thread "main" java.lang.StackOverflowError
at java.util.ArrayList.get(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at java.util.AbstractList.hashCode(Unknown Source)
at java.util.AbstractList.hashCode(Unknown Source)
...
Proszę wkleić stos śledzenia wyjątku –
'list.add (lista);' może być główną przyczyną. –
Zobacz poniższy link http://docs.oracle.com/javase/7/docs/api/java/util/ConcurrentModificationException.html –