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中文网其他相关文章!