根据日期属性对列表中的元素进行排序,并删除所有旧条目-java

时间:2012-08-28 08:58:52

标签: arraylist sorting

需要根据其中一个属性从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对此arraylist进行了排序,如:

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

                });

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

嗨,实际上我已经找到了解决方法。由于我已经使用元素对列表进行了排序,其中最近的StartDate是最后一个元素,因此我只需要写一行代码就删除除列表中最后一个元素之外的所有元素:

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

这解决了我的目的。