2017-11-11 10 views
0

クラスPersonに複数の属性があり、ArrayListがPersonの属性の昇順(たとえば年齢)で並べ替えられているとします。JavaのArrayListの要素をどのように並べ替えますか?

私がしたいことは、ArrayListに人を追加することです。追加すると、リスト内の他の要素と比較され、直接注文されます。つまり、リスト内のすべての要素を追加する必要はなく、リストの後にそのリストを追加することは望ましくありません。

+0

このリンクを見てみましょう:https://stackoverflow.com/questions/18441846/how-to-sort-an-arraylist-in-java –

+0

'Collections.sort()' – Malt

+0

ArrayListをコレクション型にすることは重要ですか? –

答えて

0

コンパレータを使用して、すべての要素が追加された後にソートすることができます。

  • java.util.ArrayListのを拡張するカスタムのArrayListを作成します:あなたは「すべてを追加」を「ソート」技術に興味を持っていませんので、 ただし、以下のことを検討してください。
  • 要素をソート順に挿入する挿入メソッドを作成します。

    public void insert(Person p) { 
    // loop through all persons 
    for (int i = 0; i < size(); i++) { 
         // if the person you are looking at is younger than p, 
         // go to the next person 
         if (get(i).age < p.age) continue; 
         // if same age, skip to avoid duplicates 
         if (get(i).age == p.age) return; 
         // otherwise, we have found the location to add p 
         add(i, p); 
         return; 
    } 
    // we looked through all of the persons, and they were all 
    // younger than p, so we add p to the end of the list 
    add(p); 
    } 
    
関連する問題