2016-07-15 3 views
0

키가 ClassModel의 순서를 나타내는 특정의 HashMap를 가지고 있습니다. 우리 모두 알고 있듯이, HashMaps는 키가 검색되거나 출력 될 때 키의 순서를 유지하지 않습니다. ClassModel 배열의 의도 된 순서를 저장하는 ArrayList도 있습니다. 예를 들어 해시 맵에서 키 값을 검색하면 Car 1, Car 4, Car 3, Car 5 및 Car 2와 같은 것을 얻을 수 있습니다. ArrayList 값 대신 배열 값의 의도 된 순서가 있습니다. Car 1, Car 2, Car 3, Car 4 및 Car 5를 사용합니다. ArrayList의 키에 따라 정렬하고 싶습니다. 내 코드는 다음과 같습니다 :내 자신의 키를 사용하여 HashMap에 기존 키를 배열하는 방법은 무엇입니까?

for (HashMap.Entry<String, FloorPlanModel> existingKeys : floorPlanKeys.entrySet()) { 
     Log.d(LOG_TAG, "existingKeys entries = " + existingKeys.getKey()); 
    } 
    for (String newKeys : buildingModel.getFpKeys()) { 
     Log.d(LOG_TAG, "newKeys entries = " + newKeys); 
    } 

그리고 출력이 순간있는 것은 다음과 같습니다

existingKeys entries = floorplan0 
existingKeys entries = floorplan2 
existingKeys entries = floorplan3 
existingKeys entries = floorplan4 
existingKeys entries = floorplan1 

newKeys entries = floorplan0 
newKeys entries = floorplan1 
newKeys entries = floorplan2 
newKeys entries = floorplan3 
newKeys entries = floorplan4 

나는 루프 최초의 내부 루프 두 번째를 넣어 하죠,하지만 어떻게 각 값을 반복 할 HashMap 및 ArrayList에있는 순서로 그들을 주문? 덮어 쓰면 해시 맵의 값이 변경됩니까?

나는 이것을 위해 TreeMaps를 사용할 수 없다는 것을 언급하는 것을 잊었다. 나는 그들을 수동으로 준비해야 할 것이다.

답변

2

TreeMap은 (는) 친구입니다. 정렬/정렬 키가있는지도.

+0

좋아요. Firebase (데이터를 HashMaps에만 저장함)에서 데이터를 가져 와서 ExpandableListAdapter에 바로 입력하면 TreeMaps를 사용할 수 없다는 사실을 잊어 버렸습니다. (따라서 값을 삽입해야합니다. 정수로 자리 잡는 어린이와 그룹으로). 그래서 나는 그들을 반복하고 대신 수동으로 그들을 재 배열했다. – user3056928

+2

'새 TreeMap (myHashMap)'이 그것을 변환합니다. – jiggy

관련 문제