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

Java向量排序

WBOY
发布: 2024-08-30 15:30:31
原创
482 人浏览过

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

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板