자바의 해시 테이블에 여러 개의 arraylist 객체를 저장하는 방법 & 어떻게 되 찾을 수 있습니까?자바의 해시 테이블에 Arraylist 객체 추가하기
답변
하지 마십시오. Hashtable 대신 HashMap을 사용하십시오. 동기화되지 않았습니다.
Map<String, ArrayList<SomeObject>> myMap = new HashMap<String, ArrayList<SomeObject>>();
ArrayList<SomeObject> list = new ArrayList<SomeObject>();
list.add(someObjectInstance1);
list.add(someObjectInstance2);
myMap.put("key1", list); // stores list containing instances #1 and #2 under key "key1"
ArrayList<SomeObject> list2 = new ArrayList<SomeObject>();
list2.add(someObjectInstance3);
myMap.put("key2", list2); // stores list2 containing instance #3 under key "key2"
SomeObject obj1 = myMap.get("key1").get(0); // returns instance #1
SomeObject obj2 = myMap.get("key1").get(1); // returns instance #2
SomeObject obj3 = myMap.get("key2").get(0); // returns instance #3
말했다 모든, 당신은 Google Collections 대신에서 Multimap 사용을 고려할 수 있습니다
Multimap<String, ArrayList<SomeObject>> myMap = ArrayListMultimaps.create();
myMap.put("key1", someObjectInstance1);
myMap.put("key1", someObjectInstance2);
myMap.put("key2", someObjectInstance3);
SomeObject obj1 = myMap.get("key1").get(0); // returns instance #1
SomeObject obj2 = myMap.get("key1").get(1); // returns instance #2
SomeObject obj3 = myMap.get("key2").get(0); // returns instance #2
당신은이 방법이 얼마나 더 간단하게 볼 수 있습니다.
위의 코드는 다중 arraylist 객체를 해시 테이블에 추가하지 않습니다. –
위 코드를 보면 맵에 2 번째 (3 번째, N 번째)리스트를 추가하는 것이 꽤 분명 할 것이라고 생각합니다. 내가 틀렸어. 두 개의 목록을 보여주기 위해 업데이트되었습니다. – ChssPly76
나는 내 downvote를 되돌 렸고, 기분이 나아 졌으면 좋겠다. –
각 Linklist의 해시 코드를 키로 사용하십시오. 게시물 중 하나에서 언급 된 FOR 값을 키로 사용하는 것은 좋은 생각이 아닙니다. 다른 곳에서 새 목록을 추가해야하는 경우 어떻게해야합니까? 다음으로 큰 키를 찾으려면 전체지도를 탐색해야합니다.
링크 된 목록의 해시 코드를 해시 키로 사용하는 것은 끔찍한 생각입니다. 무엇보다도 응용 프로그램에는 아무런 의미가 없습니다. hashtable (예를 들어 목록과 대조적으로)에 물건을 넣는 유일한 이유는 키를 사용하여이를 찾을 수 있기 때문입니다. 둘째, 많은 충돌이 있습니다. 빈 목록 세 개를 넣으면 서로 무시합니다. 셋째, 변경할 수있는 해시 키를 사용해서는 안되며 목록 내용이 변경되면 목록의 해시 코드가 변경됩니다. – Thilo
Thilo, 대답은 아주 좋습니다. 내 실수는 Hashcode가 List가 저장되어있는 Unique 메모리의 주소와 같다고 가정했습니다. – Geek
- 1. 테이블에 arraylist
- 2. 자바의 ArrayList 질문 (캡처?) 자바에서
- 3. 자바의 사각형에 마우스 수신기 추가하기
- 4. 자바의 함수 객체
- 5. 자바의 ArrayList, LinkedList의 및 스택 문제
- 6. Django에 객체 추가하기 결과 객체
- 7. 번들을 통해 ArrayList 객체 전달?
- 8. 클래스에 ArrayList 추가하기 - 클래스는 어떤 역할을합니까?
- 9. Ruby - 객체 해시 다루기
- 10. Objective-C의 테이블에 행 추가하기
- 11. MySQL 테이블에 제약 조건 추가하기
- 12. 레일스 3 테이블에 필드 추가하기
- 13. 해시 테이블에 개체 삽입 (C++)
- 14. WPF, 해시 테이블에 양방향 바인딩
- 15. 자바의 Iterable <Iterable<T>> 위해 ArrayList <ArrayList<T>>
- 16. linkedlist/arraylist to java에 객체 추가
- 17. 객체 리터럴에 프로토 타입 추가하기
- 18. 자바의 두 객체 사이의 충돌 확인
- 19. 루비 객체 배열 ... 또는 해시
- 20. C++의 해시 객체 문제
- 21. C++을 사용하여 해시 테이블을 다른 해시 테이블에 복사
- 22. ArrayList 또는 HashMap 사용
- 23. 하나의 데이터 테이블 열을 다른 테이블에 추가하기
- 24. PHP에서 생성 된 테이블에 하이퍼 링크 추가하기
- 25. JSF의 기존 데이터 테이블에 행 추가하기
- 26. 기존 테이블에 새로운 유형의 필드 추가하기
- 27. 임시 테이블을 사용자 정의 테이블에 추가하기
- 28. MySQL 테이블에 메타 데이터 속성 추가하기
- 29. NHibernate 도메인 모델 - 컬렉션에 자식 객체 추가하기
- 30. 자바의 루프에서 객체를 자주 만드는 것을 피하는 방법은 무엇입니까?
같은 키에 대해 여러 개의 ArrayLists를 사용하고 싶습니까? 또는 각 ArrayList 자신의 키를 얻을 (Murali의 답변 에서처럼)? – Thilo
-1 질문이 모호하고 제출자가 Map 또는 Hashtable 설명서를 살펴 보지 못하는 것 같습니다. –