0

需要根据其属性之一从 ArrayList 中删除元素我有一个 arraylist alElement 包含以下元素:

   [<?xml version="1.0" encoding="UTF-8"?>
          <SPLSCustnumRel ConID="1961262402" Customer="730206"
           Party="125854302" StartDate="2010-01-20-00.00.00.000000" />
          , <?xml version="1.0" encoding="UTF-8"?>
          <SPLSCustnumRel ConID="1113415796" Customer="730206"
            Party="125854302" StartDate="2011-10-05-00.00.00.000000" />
          , <?xml version="1.0" encoding="UTF-8"?>
            <SPLSCustnumRel ConID="19612402" Customer="730206"
            Party="125854302" StartDate="2012-01-20-00.00.00.000000" />
      ]

这是以前未排序的。我已经根据 StartDate 对这个数组列表进行了排序,例如:

        Collections.sort(alElement, new Comparator<YFCElement>() {

                    public int compare(YFCElement o1, YFCElement o2) {
                        // TODO Auto-generated method stub

                        return o1.getAttribute("StartDate").compareToIgnoreCase(o2.getAttribute("StartDate"));
                    }

                });

不,我想删除除最近开始日期的元素之外的所有元素。我尝试比较排序中的日期,但它不起作用。有什么帮助吗?

4

2 回答 2

0

使用 PriorityQueue 并将尾部出列,然后清除队列并将其重新插入。实际上,你可以用你的列表来做到这一点......它更简单

于 2012-08-28T09:18:50.517 回答
0

嗨,实际上我已经想出了一个解决方法。由于我已经使用最近开始日期为最后一个元素的元素对列表进行了排序,因此我只需编写如下一行即可删除列表中除最后一个元素之外的所有元素:

    alElement.subList(0, alElement.size()-1).clear();   

这解决了我的目的。

于 2012-08-28T09:43:12.367 回答