최근에 HashMap을 테스트 해본 결과 재미있는 문제가 발생했습니다. 나는 임의의 값을 설정 한 배열 인 a3을 가지고있다. 그런 다음이 배열을 가져 와서 HashMap 인스턴스 맵에 넣습니다.HashMap 사용하기 put()
내 문제는 개체 인스턴스에 put ("a3", a3) 값을 할당 할 때 인스턴스의 주소를 인쇄 할 수없는 것입니다. 예를 들어
:
HashMap<Object, Object> map = new HashMap<Object, Object>();
int[] a3 = new int[] {1, 2, 3, 4};
map.put("a3", a3);
나는 호출하면에서 System.out.println (map.put ("A3", A3), I는 주소를 메모리에
그러나, 제공하고 있습니다. 나는 개체 인스턴스를 만든 다음 내가 널 얻을 해당 인스턴스에서 인쇄 해 봅니다. 위의 세그먼트를 실행
이Object copy = map.put("a3", a3);
System.out.println(copy);
나에게 null 값을 제공합니다.
동일하게 보이는 두 문장이 다른 결과를주는 이유는 무엇입니까?
값이 HashMap에 없지만 HashMap에 값이없는 이유가 무엇인지 이해합니다. put() 메서드는 HashMap 내부에 값을 배치하지 않습니까? Object 인스턴스가 HashMap에 들어간 값에 할당되면 System.out.println()이 HashMap에있는 주소를 출력하지 않아야합니까? – Delfino
그게 내가 말하는거야. 해시 맵에는 값이 있지만 put()은 해시 맵을 반환하지 않습니다. 'System.out.println (copy)'를하지 말고,'System.out.println (map.get ("a3"))'을 실행하면 거기에 나타납니다. – JamesENL
제 설명은 의미가 있습니까? – JamesENL