Java Vector Sort は、指定された Comparator による順序に従ってベクトルをソートするために使用される Java Vector Class のメソッドです。 Java の Vector は要素の挿入順序を維持するため、sort(,) メソッドを使用して要素を昇順または降順に並べ替えます。 Sort() メソッドは Collections クラスの一部です。 Comparable と Comparator を使用してベクトル要素を並べ替えることもできます。配列と同様、Vector も整数インデックスを使用してアクセスできる要素を含む拡張可能なオブジェクトです。ベクターのサイズは、ベクターの作成後に要素を追加または削除することで拡大または縮小できます。
広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
構文:
以下はsort()メソッドの宣言として使用されます。
public void sort(Comparator<? super E> c);
必須引数「c」は、ベクトル要素を比較するために使用されるコンパレータです。メソッドの戻り値の型が void
の場合は何も返しません。例外はなく、これは Java 1.2 バージョン以降と互換性があります
以下に挙げる例は次のとおりです
Collections.sort() を使用した単純な Vector sort()
コード:
import java.util.Vector; import java.util.Collections; public class SortJavaVectorExample { public static void main(String[] args) { Vector vector = new Vector(); vector.add("10"); vector.add("31"); vector.add("52"); vector.add("23"); vector.add("44"); System.out.println("Vector elements before sorting: "); for(int x=0; x<vector.size(); x++) System.out.println(vector.get(x)); Collections.sort(vector); System.out.println("Sorted Vector elements in ascending order: "); for(int y=0; y<vector.size(); y++) System.out.println(vector.get(y)); } }
出力:
ベクターを宣言し、ベクターに要素を追加し、ソートせずに要素を出力すると、同じ挿入順序が維持されます。 for ループを使用して、get(x) はインデックス x
から要素を取得します。Collections.sort() はベクター要素を昇順に並べ替え、for ループを使用して表示します。
アルファベット順のベクトルソート
コード:
import java.util.*; public class VectrSort { public static void main(String arg[]) { Vector < String > v = new Vector < String > (); v.add("Dragon Fruit"); v.add("Apple"); v.add("Watermelon"); v.add("Orange"); v.add("Strawberry"); System.out.println("Elements of Vector are: "); for (String fruit: v) { System.out.println(" "+fruit); } Collections.sort(v); System.out.println("Vector elements after sorting are: "); for (String fruit : v) { System.out.println(" "+fruit); } } }
出力:
ベクトル要素を降順でソートします。つまり、Collections クラスの reverseOrder() メソッドを呼び出す必要があります。これにより、当然のことながらベクトル要素の順序が逆になります。
ベクトル要素を逆順に並べ替えます。
コード:
import java.util.Vector; import java.util.Comparator; import java.util.Collections; public class reverseSortArray { public static void main(String[] args) { Vector v = new Vector(); v.add("ColorRed"); v.add("ColorYellow"); v.add("ColorBlue"); v.add("ColorBlack"); v.add("ColorOrange"); v.add("ColorGreen"); System.out.println("Vector Elements before sorting :"); for(int x=0; x < v.size(); x++) System.out.println(v.get(x)); Comparator comparator = Collections.reverseOrder(); Collections.sort(v,comparator); System.out.println("Vector Elements after reverse sorting :"); for(int x=0; x < v.size(); x++) System.out.println(v.get(x)); } }
出力:
ここでは、ベクトル要素がアルファベットに基づいて降順に並べ替えられています。
カスタム クラス オブジェクトのベクトル要素の並べ替えを見てみましょう。
上記の Collections.sort() メソッドは、要素クラスが Comparable Interface を実装している場合にのみ機能します。実装されていない場合は、コンパイル エラーが発生します。
ここでは、カスタム クラスが Comparable Interface を実装する方法を見ていきます。
カスタム クラス オブジェクトのベクトルの並べ替え。
コード:
import java.util.Collections; import java.util.Vector; class Employee implements Comparable<Employee>{ private int empid; public Employee(int empid){ this.empid = empid; } public String toString(){ return "Employee[" + this.empid + "]"; } public int getempId(){ return this.empid; } public int compareTo(Employee otherEmployee) { return this.getempId() - otherEmployee.getempId(); } } public class EmployeeSortVector { public static void main(String[] args) { Vector<Employee> vEmp = new Vector<Employee>(); vEmp.add(new Employee(110)); vEmp.add(new Employee(121)); vEmp.add(new Employee(102)); vEmp.add(new Employee(145)); vEmp.add(new Employee(1)); Collections.sort(vEmp); System.out.println(vEmp); } }
出力:
上記の要素を逆順に並べ替えるには、reverseComparator を使用します。
Collections.sort(vEmp, Collections.reverseOrder())
カスタム コンパレータを使用してカスタム クラス オブジェクトを並べ替えることもできます。前回は、Comparable Interface がどのように実装されるかを説明しました。ここで、クラス オブジェクトのカスタム コンパレーターを作成します。
カスタム コンパレーターを使用したカスタム クラス オブジェクトのベクター ソート。
コード:
import java.util.Collections; import java.util.Comparator; import java.util.Vector; class Employee{ private int empid; public Employee(int empid){ this.empid = empid; } public String toString(){ return "Employee[" + this.empid + "]"; } public int getempId(){ return this.empid; } } class EmployeeComparator implements Comparator<Employee>{ public int compare(Employee emp1, Employee emp2) { return emp1.getempId() - emp2.getempId(); } } class EmployeeComparatorDesc implements Comparator<Employee>{ public int compare(Employee emp1, Employee emp2) { return emp2.getempId() - emp1.getempId(); } } public class SortJavaVectorExample { public static void main(String[] args) { Vector<Employee> vEmp = new Vector<Employee>(); vEmp.add(new Employee(346)); vEmp.add(new Employee(111)); vEmp.add(new Employee(211)); vEmp.add(new Employee(533)); vEmp.add(new Employee(211)); vEmp.add(new Employee(25)); Collections.sort(vEmp, new EmployeeComparator()); System.out.println(vEmp); Collections.sort(vEmp, new EmployeeComparatorDesc()); System.out.println(vEmp); } }
出力:
これで、「Java ベクトル ソート」のトピックを終了します。 Java におけるベクトル ソートとは何か、そしてそれがどのように実装されるかを見てきました。必要な引数を使用した構文についても説明します。また、ベクトルの並べ替えがどのように行われるかについても説明し、Collections.sort() を使用した昇順での並べ替え、Collections.reverseOrder() メソッドを使用した降順での並べ替えなど、すべての種類の例を確認しました。これに加えて、Comparable を使用してカスタム クラス オブジェクトを並べ替え、カスタム クラス オブジェクトの比較可能なものをカスタマイズしました。このトピックの最大限の領域をカバーできたことを願っています。ありがとう!楽しく学習してください!
以上がJava ベクトルの並べ替えの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。