Java では、カスタム基準に基づいてコレクション内のデータを整理することが一般的なタスクです。 id フィールドを持つオブジェクトのコレクションがあり、そのフィールドで並べ替えたいとします。
これを実現するには、コンパレーターを使用します。これにより、順序付けのための独自のロジックを指定できます。方法は次のとおりです。
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class CustomObject implements Comparable{ private int id; public int getId() { return id; } @Override public int compareTo(CustomObject other) { return this.id - other.id; } } public class CustomCollectionSorting { public static void main(String[] args) { // Initialize the list of CustomObject List list = new ArrayList(); list.add(new CustomObject(3)); list.add(new CustomObject(5)); list.add(new CustomObject(1)); list.add(new CustomObject(2)); // Create a comparator Comparator comparator = new Comparator () { @Override public int compare(CustomObject left, CustomObject right) { return left.getId() - right.getId(); } }; // Sort the collection Collections.sort(list, comparator); // Display the sorted list System.out.println(list); } }
コンパレータを使用すると、並べ替えロジックを最大限に柔軟に定義できます。あるいは、CustomObject が Comparable を実装している場合は、より単純な Collections.sort(list) メソッドを使用できます。
Java 8 では、コレクションの並べ替えがさらに簡単になります:
list.sort((left, right) -> left.getId() - right.getId()); list.sort(Comparator.comparing(CustomObject::getId));
これらの例は、特定のフィールドに基づいて Java コレクションを並べ替える方法を示し、特定の要件に従ってデータを簡単に整理および操作できるようにします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3