2012-05-18 1 views
-1

LinkedHashMap에 관한 모든 게시물을 통해 몇 시간 동안 검색을 해왔지만 기본이 누락 된 것 같습니다.연결된 자바 스크립트에서 <K, V>의 Java 위치

DB 호출에서 K, V 세트를 생성하지만 각 세트가 무엇인지 알지 못합니다. 일부 K, V가 처리되고 나머지는 처리되지 않습니다

지도를 반복하고 위치 (indexOf [i] ??) + K (문자열)를 가져와야합니다. 그러면 K가 어떻게 처리 될지 묻는 다른 방법으로 넘겨 질 것입니다. (두 번째 배열에 넣기)

2 번째 배열을 기반으로, 다음 위치를 호출하는 필수 K, V 세트를 처리합니다 [i ]. ABC TXT - - 데프 ㅋ - GHI ㅋ - 가 무엇을해야 하는지를 JKL TXT 2) 루프 기록과 질문 2 스크립트 - 같은 TXT 과정 을 다음과 같이

즉 1) 정보를 설문 조사 DB는 레코드 반환 이 ..... - 아무 것도하지 않음 - K로 빠른 참조를 위해 indexOf를 저장하면 값이 변경 될 수 있습니다. - 필요한 경우 K는, V는 (철자 오류 정정 공백을 제거하여 strtolower 등) 변화에 필요한 추가적인 프로세싱 호출 같이 IndexOf에 기초 3) (K)를 상기와 같이 변경 될 수도

는 그래서 LinkedHashMap 올바른 유형이고 용도?

PHP의 관점에서 보면 쉽게 볼 수 있으므로 약간 두껍게 사용해야합니다.

모든 코드 예제가 훌륭합니다.

답변

1

.

MapArrayList (둘 다 동일한 객체에 대한 참조를 저장함)과 함께 표준 Java 컨테이너에서이를 수행하는 한 가지 방법이 있습니다. 전자는 키를 이용한 빠른 검색을 가능하게합니다. 후자는 위치에 따라

이러한 구조에 삽입하면 O(n)이됩니다. 그러나 구조체를 한 번만 만들고 나중에 변경하지 않는 것 같습니다.

마지막으로 키가있는 요소를 빠르게 찾을 필요가없는 경우 Map을 잃어 버리고 ArrayList 만 사용할 수 있습니다.

+0

thx 정보를 위해. 혼합물과 같은 소리가 정확한 접근법입니다. Q를 조금 업데이트하여 Tx Art로 업데이트했습니다. –

0

귀하의 질문에 분명하지 않지만지도 반복 방법에 대해 질문하는 것 같습니다. 자바

Map<String, String> map = new HashMap<String, String>(); 
    map.put("key1", "value1"); 
    for (Entry<String, String> entry : map.entrySet()) { 
     String key = entry.getKey(); 
     String value = entry.getValue(); 
    } 
1

지도 인덱스의 개념을 지원하지 않는 각 키와 값의 매핑에 할당되는 :

당신이 다음과 같은 방법을 수행 할 수 있습니다. LinkedHashMap에 대해서도 마찬가지입니다. 반복 순서를 예측할 수있는 유일한 이점이 있습니다.

질문을 완전히 이해하지 못했지만 "지도에서 키 - 값 매핑 색인을 얻는 방법"이라고하면 직접적으로 가능하지 않습니다. 지도를 반복하고 찾고있는 키를 계산할 수 있습니다. 물론 이것은 복잡성이 O O (빠름)이며 빠르지는 않습니다.

PHP에서는 기본 데이터 구조에 array/list와 map이 일부 조합되어 있기 때문에 PHP는 다르지만 Java에서는 고유 한 데이터 구조입니다.

질문을 명확히하면 더 적합한 데이터 구조를 제공 할 수 있습니다. 당신이 원하는 것을 정확히 확인하지

+0

정보를위한 thx, 나는 둘 다의 혼합물을 시도하고 성과가 어떻게가는 지보십시오, thx 정보 –

0

임 ... 당신이 효율적으로 키를 기준으로 위치하여 모두 당신의 구조 요소를 찾을 수 있어야처럼 소리

public void processDbResult(Map<K, V> map) 
{ 
    // you got sth like this: 
    // Map<K, V> map = new LinkedHashMap<K, V>(); 
    for (Entry<K, V> entry : map.entrySet()) 
    { 
     K key = entry.getKey(); 
     V value = entry.getValue(); 

     Object how = determine(key); 

     process(how, entry); 
    } 
} 

private void process(Object how, Entry<K, V> entry) 
{ 
    // do something 
} 

private Object determine(K key) 
{ 
    // determine processing steps 
    return new Object(); 
}