PHP의 연관 배열처럼 키를 값에 매핑 할 수있는 데이터 구조가 필요합니다. 각 키는 한 번만 존재할 수 있지만 값은 임의의 수의 키에 매핑 될 수 있습니다. 내가 뭘 찾고있어? Google Commons Collections에있는 것이 있습니까?Java : PHP의 연관 배열을 모방하기 위해 사용할 데이터 구조는 무엇입니까?
답변
Map
구조가 원하는 것입니다. 좋은 구현은 HashMap
입니다.
이 데이터 유형은 키에 대해 동일한 값을 허용하지 않지만 원하는만큼 중복 값을 가질 수 있습니다.
사용 예제 : 즉
Map<String, String> map = new HashMap<String, String>();
map.put("FirstName", "LastName");
System.out.println(map.get("FirstName")); // Prints 'LastName'
System.out.println(map.put("FirstName", "Foo")); // Prints 'LastName'
System.out.println(map.get("FirstName")); // Prints 'Foo'
는 키를 한 번만 존재할 수 있습니다. 그렇지 않으면 값을 덮어 씁니다.
HashMap<K,V>
과 같이 HashMap을 찾고 있습니다. 전자는 Objects to Objects를 매핑하고 후자는 다른 유형을 매핑합니다.
PHP 배열은 삽입 순서를 유지합니다. HashMap은 그렇지 않습니다. – cletus
좋은 지적이지만 그는 단지 연관 속성을 요구 했으므로 나는 그가 그 특질에 대해 걱정하지 않는다고 생각합니다. –
@cletus : 그럼'LinkedHashMap'이 있습니다. :-P –
일반 HashMap의 문제점은 무엇입니까? 값이 String 인 경우 참조 카운팅을 무료로받을 수 있습니다. 객체의 특정 인스턴스를 참조해야하지만 기존 참조를 사용하지 않고 기존 참조를 사용합니다.
참조 카운팅? 그 점이나 그것이 관리되는 언어로 어떻게 영향을 미치는지 더 자세히 설명 할 수 있습니까? –
-1 : 참조 횟수에 대한 문장이 완전히 잘못되었습니다. 괜찮은 JVM은 문자열이나 다른 "정상적인"데이터 구조의 메모리 관리에 참조 카운팅을 사용하지 않습니다. –
'String a = "A"; 문자열 b = "A"; if (a == b && a.equals (b)) System.out.println (1); else System.out.println (0); ' 컴파일러가 배치하는 실제 메커니즘은 무차별 대입력 RC가 아니라고 가정합니다. 내가 말한 전부는 HashMap에서 여러 개의 String 키가 동일한 String 값으로 매핑된다는 것입니다 자바에서는 문자열이 특별한 방법으로 다루어지기 때문에 특별한 것을 할 필요가 없다. – Bostone
HashMap은 확실한 방법입니다. 실제로 PHP로 코딩을 시작했을 때 실제로 다른 방향으로 보입니다. 궁금 해서요, 어떻게 HashMap을 구현합니까? 그런 다음 연관 배열을 발견했습니다.
- 1. 사용할 C# 데이터 구조는 무엇입니까?
- 2. "다차원"목록을 위해 Java에서 사용할 최상의 데이터 구조는 무엇입니까?
- 3. 자바에서 PHP의 연관 배열 대체
- 4. 개체의 평가 순서에 사용할 데이터 구조는 무엇입니까?
- 5. java에서 사용할 올바른 데이터 구조는 무엇입니까?
- 6. 이 데이터 구조는 무엇입니까?
- 7. Java 연관 배열을 메소드 옵션으로 사용
- 8. VB.NET에서는 최적의 성능을 위해 정수를 반환하므로 두 문자를 사용할 때 사용할 데이터 구조는 무엇입니까?
- 9. 쿼리 캐싱을위한 데이터 구조는 무엇입니까?
- 10. 데이터 구조는
- 11. 가상 파일 시스템을 위해 데이터베이스에서 사용할 구조는 무엇입니까?
- 12. 내가 연관 배열을 가지고
- 13. PHP의 2 차원 연관 배열
- 14. Java 구조는 무엇을합니까?
- 15. Java 및 PHP의 유사한 데이터 구조
- 16. 키워드를 보관할 가장 효율적인 데이터 구조는 무엇입니까?
- 17. 키리스 배열을 연관 배열
- 18. 자손 관계에 사용할 수있는 최상의 데이터 구조는 무엇입니까?
- 19. 다차원 연관 배열을 통한 반복
- 20. 변수 대 PHP의 연관 배열 대
- 21. 다차원 연관 배열을 어떻게 열거합니까?
- 22. 이 상황에 적합한 데이터 구조는 무엇입니까?
- 23. PHP의 연관 배열에 값 추가
- 24. Win32 API에서 제공하는 데이터 구조는 무엇입니까?
- 25. PHP의 배열을 조작
- 26. 디렉토리 구조에 사용되는 데이터 구조는 무엇입니까?
- 27. 이러한 연관 배열을 구현하는 방법은 무엇입니까?
- 28. 연관 배열을 재정렬하는 가장 우아한 방법은 무엇입니까?
- 29. 지도의 트리에 대한 최적의 데이터 구조는 무엇입니까
- 30. 데이터 구조는 lisp로
이 질문은 비슷한 것을 이야기합니다. http://stackoverflow.com/questions/4993366/does-java-support-associative-arrays/12640402#12640402 –