Java Vector Sort 是 Java Vector 類別的方法,用於根據指定比較器的順序對向量進行排序。由於Java中的Vector維護元素插入的順序,因此sort(,)方法用於按升序或降序對元素進行排序。 Sort() 方法是 Collections 類別的一部份;向量元素也可以使用 Comparable 和 Comparator 進行排序。與陣列一樣,Vector 也是一個可增長的對象,其中包含可以使用整數索引存取的元素。建立向量後,可以透過新增或刪除元素來增大或縮小向量的大小。
廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
文法:
以下用作sort()方法的聲明,
public void sort(Comparator<? super E> c);
強制參數‘c’是用來比較向量元素的比較器。如果方法的傳回類型為 void
,則不傳回任何內容沒有例外,且相容於 Java 1.2 以上版本
以下是下面提到的範例
使用 Collections.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 介面時才有效;如果不實現,我們將面臨編譯錯誤。
在這裡,我們將看到自訂類別如何實作 Comparable 介面。
自訂類別物件的向量排序。
代碼:
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中文網其他相關文章!