【问题标题】:Facing an issue with hashtable面临哈希表的问题
【发布时间】:2012-03-15 15:04:46
【问题描述】:

我遇到了哈希表的问题。我正在使用黑莓。在下面的代码中,sysout“向量大小信息是”显示数据有两个,但 sysout“哈希表中的大小”显示数据有一个。这个我不明白。

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());

现在如果我使用下面的代码循环这个哈希表,我会得到向量中的数据有一个

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);

这里的数据只给出了一个,但上面显示了两个。

【问题讨论】:

    标签: java blackberry calendar hashtable blackberry-jde


    【解决方案1】:

    哈希表的大小为 1,因为它只有一个条目。

    您存储在哈希表中的向量的大小不会反映在哈希表的大小中。

    【讨论】:

      【解决方案2】:

      Hashtable 中只有一项,因为您只插入了一项 - 一个包含两个元素的列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-21
        • 2011-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-05
        相关资源
        最近更新 更多