2014-07-11 3 views
1

같은 개체를 여러 컬렉션에 유지하는 것이 좋은 프로그래밍 방법입니까?여러 컬렉션의 동일한 개체

Map<String,MyObject> map = new HashMap<>(); 

내 응용 프로그램이 연결된 여러 클라이언트와 함께 작동, 내가 예 : 500 요소가 포함 된지도를 가지고 말할 수 있습니다, 그리고 각 클라이언트는 거의 항상 단지 ± 20 알려진 사용할 것이라는 점을 알고 이지도와 다른 요소.

제 질문은 일부 반복을 저장하려는 경우이 20 개의 요소를 보유 할 각 클라이언트에 대한 맵을 만드는 것이 좋습니다.

+0

모든 항목에서 참조 제거를 관리해야하는 경우가 있습니다. –

+0

예, 제 경우에는 사용할 수 있습니다. 제거를위한 weakhashmap. – user2749903

답변

5

물론입니다. 심지어는 동일한 데이터 (객체 풀 또는 플라이 웨이트 패턴이라고도 함)를 보유하는 많은 새 객체를 만드는 대신 객체를 재사용하는 방법 일 수도 있습니다.

그러나 컨텍스트에 속하므로 개체를 변경할 수있는 대상과 방법을 확인해야합니다. 클라이언트 A가 객체를 변경하면 클라이언트 B에 대해서도 변경됩니다. 이것이 의도 한 바라면 완전히 괜찮습니다.

+0

두 번째 단락에 약간의 강조점이 있습니다. 두 개 이상의 장소에서 동일한 객체를 참조하고 있으며 이후에 나오는 모든 힘과 함정은 객체 지향 (Object Oriented) 객체임을 나타냅니다. – nonconvergent

0

예,지도가 더 작 으면 필요한 개체를지도에서 가져 오는 데 시간이 덜 걸리기 때문에 좋습니다. 해당 오브젝트를 복제하지 않고 다른 맵에 중복 오브젝트가없는 한

관련 문제