2012-03-15 12 views
-2

ハッシュテーブルの問題に直面しています。私はブラックベリーと一緒に働いています。以下のコードでは、sysoutの「ベクトル・サイズ情報は」というデータが2つあることを示していますが、sysoutの「ハッシュ・テーブルのサイズ」にはデータが1つあることが示されています。ぜんぜんわかりません。今ハッシュテーブルの問題に直面

try { 
    Hashtable listUserEvents = getUserInfo(); 
    Vector listEvents = new Vector(); 
    EventList eventList = (EventList) PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.READ_ONLY); 
    Enumeration events = eventList.items(); 

    while (events.hasMoreElements()) { 
    System.out.println("in while"); 
    Event event = (Event) events.nextElement(); 

    if (eventList.isSupportedField(Event.START) && event.countValues(Event.START) > 0) { 
     long start = event.getDate(Event.START, 0); 

     SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm"); 
     String dateString = sdf.formatLocal(start); 

     SimpleDateFormat sdf1 = new SimpleDateFormat("MMM dd,yyyy"); 
     String date = sdf1.formatLocal(start); 
     System.out.println("dates are :" +date+ "user" +usrDate); 

     if (usrDate.equalsIgnoreCase(date)) { 
     System.out.println("dates are equal:" +date); 
     EventsBean eventBean = new EventsBean(); 

      if (eventList.isSupportedField(Event.END) && event.countValues(Event.END) > 0) { 
      long end = event.getDate(Event.END, 0); 
      SimpleDateFormat sdform = new SimpleDateFormat("MMM dd, yyyy HH:mm"); 
      String dateString1 = sdform.formatLocal(end); 
      eventBean.setStartDate(dateString); 
      eventBean.setEndDate(dateString1); 
      } 
      listEvents.addElement(eventBean); 

      if (listUserEvents.containsKey(usrDate)) { 
      Vector info = (Vector) listUserEvents.get(usrDate); 
      System.out.println("the size in getEvents is" + info.size()); 
      info.addElement(eventBean); 
      System.out.println("vector size info is" + info.size()); 
      listUserEvents.put(usrDate, info); 
      } else { 
      listUserEvents.put(usrDate, listEvents); 
      } 
     } 
     } 
    } 

    System.out.println("size in hashtable "+listUserEvents.size()); 

以下のコードを使用して、このハッシュテーブルの上に私のループiは、ベクトル内のデータを取得する場合は、1つ

Enumeration events = listEvent.keys(); 
         while (events.hasMoreElements()) { 
            String key = (String) events.nextElement(); 

            if (key.equals(label1.getText())) { 

             Vector object = (Vector) listEvent.get(key); 
             System.out.println("vector size"+object.size()); 
              Enumeration hashtable = listEvent.keys(); 
              while (hashtable.hasMoreElements()) { 
               String keys = (String) hashtable.nextElement(); 
               if (keys.equals(label1.getText())) { 

               Vector data = (Vector) listEvent.get(keys); 

ここでのデータは一つだけが、それは2を示し、上記与えています。

+0

コードが不完全です... –

答えて

2

ハッシュテーブルのサイズは、エントリが1つしかないため、1つです。

ハッシュテーブルに格納するベクトルのサイズは、ハッシュテーブルのサイズに反映されません。

1

ハッシュテーブルには1つのアイテムしか挿入されていないため、アイテムは2つあります。

関連する問題