4

重複の可能性:
リストをアルファベット順に並べ替える

入力をアルファベット順に保存するにはどうすればよいですか。名前を配列リストに入力しています。

    persons.add(person);

どうやってするか?

4

4 に答える 4

9

Comparator< T >インターフェイスを実装します

class A implements Comparator < Person > {

    @Override
    public int compare(Person o1, Person o2) {
        if(o1.getName() != null && o2.getName() != null){
            return o1.getName().compareTo(o2.getName());
        }

        return 0;
    }

}

次に使用しますCollections.sort(/* list here */, /* comparator here*/)

于 2010-12-23T13:21:07.630 に答える
5

これを試して:

 java.util.Collections.sort(people);
于 2010-12-23T13:09:20.990 に答える
5
Collection<Person> listPeople = new ArrayList<Person>();

クラスPerson.javaはComparableを実装します

public class Person implements Comparable<Person>{

public int compareTo(Person person) {
  if(this.name != null && person.name != null){
   return this.name.compareToIgnoreCase(person.name);
  }
  return 0;
 }

}

これを取得したら、人を追加するクラスで、追加が完了したら、次のように入力します。

Collections.sort(listPeople);
于 2010-12-23T13:14:08.397 に答える
0

ArrayListの代わりにTreeSetを使用する

于 2010-12-23T13:08:08.177 に答える