2012-05-07 56 views
0

我想比较哈希表中存在的矢量值与其他矢量,如果矢量值相同我想要执行一些操作否则我必须执行保存,但我总是得到矢量两者的值都不同。我不能使用泛型,因为我正在处理旧项目。无法比较矢量数据

Hashtable hCompareTable = rUtil.getEventForComparing(dateSel,e.getTimeZone(),listUserEvents); 

Enumeration eventsCompareKey = hCompareTable.keys(); 

    while (eventsCompareKey.hasMoreElements()) { 
     String compareKey = (String) eventsCompareKey.nextElement(); 
     Vector compareEventData = (Vector) hCompareTable.get(compareKey); 

     if (compareKey.equals(dateSel)) { 
       for (int i = 0; i < compareEventData.size(); i++) { 
     EventData eCompare = (EventData) compareEventData.elementAt(i); 
         for (int j = 0; j < object.size(); j++) { 
           EventData eveObject = (EventData) object.elementAt(j) 
             if (eveObject.getSummary().equals(eCompare.getSummary())) { 
              syso("equal") 
             } 
             else{ 
              //do something 
             } 

我不明白我是如何比较两个向量中的数据,bot向量具有EventData bean值。

回答

1

任何原因你总是与lastElement比较object Vector?您正在遍历对象的大小,但始终使用矢量对象的最后一个元素。

其他明智的,你可能需要改变它:

EventData eveObject = (EventData) object.elementAt(j); // object.lastElement(); 
+0

即使我使用elementAt(j)它不会给我正确的结果,我只是改变为lastElement来测试@Ravinder – harqs

+0

@harqs - 添加到您的文章中,您添加到'object'和'compareEventData'的一些示例数据Vector实例并打印汇总值以进行调试。 –

+0

对象有像a,b,c这样的摘要数据,而compareEventData也有相同的内容。当我调试循环时有时会进入等于和不等于。 – harqs

0

不正确EVENTDATA重写Object.Equals(Object)方法?

+0

我没有重写equals方法 – harqs

+0

好吧,EventData类实现是从哪里来的?这是你制作的课吗?如果是这样,我们必须实现equals方法,以便equals方法可以工作:当我们执行eventData1.equals(eventData2);时,具有相同内部数据的不同EventData实例必须返回true。或者至少对eveObject.getSummary()中返回的对象应用同样的想法。 – Zecas

+0

好的我已经创建了EventData类,它是一个具有事件信息的bean类,应该如何定义equals方法实现? – harqs