What will the given hashMap contain, after the below code is compiled and run?

    public static void main(String[] args) {
        HashMap hashMap = new HashMap();
        List list = new ArrayList();
        list.add(hashMap);
        hashMap.put(list, null);
        hashMap.put(list, null);
    }
Explanation
When a key-value pair is added to a HashMap - a hashCode for the input key is generated, while the value can be virtually anything, even null. An ArrayList hashCode is calculated based on the hashCodes of all of its elements. Consequently, adding the list first time, will generate no error, because the hashMap is empty, and the list hashCode can be easily calculated. The second addition, however, will generate a StackOverflowError (the list hashCode needs to be calculated based on HashMap hashCode, which needs to be calculated based on the list hashCode, etc).

Слідкуй за CodeGalaxy

Мобільний додаток Beta

Get it on Google Play
Зворотній Зв’язок
Продовжуйте вивчати
тести з Java
Cosmo
Зареєструйся Зараз
або Підпишись на майбутні тести