[解決済み】Javaで2つのフィールドでソートする方法は?
2022-04-10 12:58:19
質問
オブジェクトの配列があります
person (int age; String name;)
.
この配列を名前のアルファベット順に並べ、さらに年齢順に並べるにはどうしたらよいでしょうか?
この場合、どのようなアルゴリズムを使用するのでしょうか?
どのように解決するのですか?
を使用することができます。
Collections.sort
を以下のように設定します。
private static void order(List<Person> persons) {
Collections.sort(persons, new Comparator() {
public int compare(Object o1, Object o2) {
String x1 = ((Person) o1).getName();
String x2 = ((Person) o2).getName();
int sComp = x1.compareTo(x2);
if (sComp != 0) {
return sComp;
}
Integer x1 = ((Person) o1).getAge();
Integer x2 = ((Person) o2).getAge();
return x1.compareTo(x2);
}});
}
List<Persons>
は、名前順、年齢順に並べられるようになりました。
String.compareTo
2つの文字列を辞書順に比較します。
ドキュメント
.
Collections.sort
は、ネイティブのCollectionsライブラリの静的メソッドです。これは実際のソートを行い、リスト内の2つの要素を比較する方法を定義するComparatorを提供する必要があるだけです。
compare
メソッドを使用します。
関連
-
[解決済み] tempとは何ですか、またjavaにおけるtempの用途は何ですか?
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] List<T>をオブジェクトのプロパティでソートする方法
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] javax.naming.NameNotFoundException
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] SubclipseとJavaHLのインストールで頭を悩ます
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?
-
[解決済み] .lengthが解決できない、またはフィールドでない