0

その属性の1つに基づいて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

こんにちは、実際に私は回避策を考え出しました。Most Recent StartDate が最後の Element である要素を使用してリストを既に並べ替えているため、次のような行を記述するだけで、リストの最後の要素を除くすべてを削除します。

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

これで私の目的は解決します。

于 2012-08-28T09:43:12.367 に答える