2011-12-27 2 views
0

구현 및 확장 가능한 목록보기에서 데이터베이스에서 값을 추출하고 Gui.so 값을 해시 맵에 저장해야하므로 해시 맵과 값에 해시 키를 동적으로 추가해야합니다. 코드 : 경우자바에서 동적으로 hashmap 키를 만드는 방법은 무엇입니까?

for(int i=0;i<=1;i++){ 
     List resTimeArraySms=new ArrayList(); 
     resultCursorSMS = NTDBHelper.getInstance().getResultDataByMediaType(getApplicationContext(), "Plan1",1); 

     while (resultCursorSMS.moveToNext()){ 

      HashMap resHash=new HashMap(); 
      resTimeStampSms = resultCursorSMS.getLong(resultCursorSMS.getColumnIndex(NTDataProvider.KEY_RESULTS_TIME_STAMP)); 
      resHash.put("timestampsms", resTimeStampSms); 
      resTimeArraySms.add(resHash); 

     } 



    resTimeArray.add(resTimeArraySms); 
    } 
+1

그것은 매우 명확하지 당신이 요구하는 무엇을 각 삽입 후 카운터 값을 증가합니다. 이것을 코딩 해 보셨습니까? 달성하고자하는 코드 (심지어 의사 코드)를 보여줄 수 있습니까? – Mat

+0

나는 당신이 당신의 질문에 대해 정교해야한다고 생각한다. 일반적으로 해시와 같은 구조의 핵심은 매우 빠르게 키에 의한 값을 얻는다는 것이다. O (1) value = get (key) 자, 어떻게해야 하는가? 해시의 키로 사용할 임의의 String을 생성합니까? –

+0

질문을 수정하십시오 .. 뭐라 구요? –

답변

2

봅니다 카운터를 작성하고 키와 카운터를 사용하고

int counter = 0; 
      for(int i=0;i<=1;i++){ 
       List resTimeArraySms=new ArrayList(); 
       resultCursorSMS = NTDBHelper.getInstance().getResultDataByMediaType(getApplicationContext(), "Plan1",1); 

       while (resultCursorSMS.moveToNext()){ 

        HashMap resHash=new HashMap(); 
        resTimeStampSms = resultCursorSMS.getLong(resultCursorSMS.getColumnIndex(NTDataProvider.KEY_RESULTS_TIME_STAMP)); 
        resHash.put("timestampsms"+counter, resTimeStampSms); 
        resTimeArraySms.add(resHash); 
        counter++; 
       } 



      resTimeArray.add(resTimeArraySms); 
      } 
0

당신의 DB에서 검색 한 개체에 대한 해시 코드를 생성 할은 평민 - 랭에서 HashCodeBuilder를 보라.

관련 문제