首頁 >Java >java教程 >Java向量排序

Java向量排序

WBOY
WBOY原創
2024-08-30 15:30:31477瀏覽

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 以上版本

使用比較器對向量進行排序的步驟

  • 建立向量物件
  • 使用 add 方法在 Vector 中加入元素(Element e)
  • 使用 Collections.sort 對 Vector 物件進行排序
  • 顯示已排序元素的清單

Java 向量排序範例

以下是下面提到的範例

範例#1

使用 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));
}
}

輸出:

Java向量排序

聲明向量、向向量添加元素並列印元素而不排序,保持相同的插入順序。使用 for 循環,get(x) 從索引 x

取得元素

Collections.sort() 將向量元素依升序排序,並使用 for 迴圈進行顯示。

範例#2

依字母順序進行向量排序

代碼:

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);
}
}
}

輸出:

Java向量排序

我們將向量元素依降序排序,也就是必須呼叫Collections類別的reverseOrder()方法,這自然會強制向量元素的順序相反。

範例 #3

以相反順序對向量元素進行排序。

代碼:

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));
}
}

輸出:

Java向量排序

所以這裡,向量元素是依照字母降序排列的。

讓我們來看看自訂類別物件的向量元素的排序。

上述 Collections.sort() 方法僅在元素類別實作 Comparable 介面時才有效;如果不實現,我們將面臨編譯錯誤。

在這裡,我們將看到自訂類別如何實作 Comparable 介面。

範例#4

自訂類別物件的向量排序。

代碼:

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);
}
}

輸出:

Java向量排序

要對上述元素進行逆序排序,需要使用reverseComparator。

Collections.sort(vEmp, Collections.reverseOrder())

我們也可以使用自訂比較器對自訂類別物件進行排序。之前,我們了解了Comparable Interface是如何實現的;現在,我們將為類別物件建立一個自訂比較器。

範例#5

使用自訂比較器對自訂類別物件進行向量排序。

代碼:

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向量排序」就結束了。我們已經了解了什麼是 Java 中的向量排序以及它是如何實現的。也解釋了其語法以及所需參數。也討論了向量排序是如何完成的,並看到了所有類型的範例,使用 Collections.sort() 升序排序,使用 Collections.reverseOrder() 方法降序排序。除此之外,我們還使用 Comparable 對自訂類別物件進行排序,並且還自訂了自訂類別物件的比較。我希望我們已經涵蓋了該主題的最大範圍。謝謝!快樂學習!

以上是Java向量排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn