コンパレータを使用したタイムスタンプによるリスト内のオブジェクトの並べ替え
Java では、複数のプロパティに基づいてオブジェクトのリストを並べ替えるには、コンパレータを使用する必要があります。 ActiveAlarm などの時間関連の属性を持つクラスがある場合、コンパレータを使用してそれらを特定の順序で並べ替えることができます。
リストを並べ替えるには
List<ActiveAlarm> alarms = new ArrayList<>(); // Custom comparator to compare ActiveAlarm instances based on timeStarted and timeEnded Comparator<ActiveAlarm> comparator = new Comparator<ActiveAlarm>() { @Override public int compare(ActiveAlarm o1, ActiveAlarm o2) { // First compare timeStarted int comparisonResult = Long.compare(o1.timeStarted, o2.timeStarted); // If timeStarted is equal, compare timeEnded if (comparisonResult == 0) { comparisonResult = Long.compare(o1.timeEnded, o2.timeEnded); } return comparisonResult; } }; // Sort the list of alarms using the comparator Collections.sort(alarms, comparator);
このコンパレータでは、compare メソッドは最初に timeStarted 値を比較し、o1 が o2 より早い (0) かを示す整数を返します。 timeStarted 値が等しい場合は、timeEnded 値を比較します。
Java 8 以降では、ラムダ式を使用してコンパレータを簡素化できます。
Comparator<ActiveAlarm> comparator = (o1, o2) -> { int comparisonResult = Long.compare(o1.timeStarted, o2.timeStarted); if (comparisonResult == 0) { comparisonResult = Long.compare(o1.timeEnded, o2.timeEnded); } return comparisonResult; };
コンパレータを利用することで、特定のプロパティに基づいてオブジェクトのリストを効率的に並べ替えることができ、Java でデータを整理および操作するための柔軟なアプローチを提供します。
以上がコンパレータを使用して Java オブジェクトのリストを複数のタイムスタンプで並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。