详解Java sort()数组排序(升序和降序)

244次阅读
没有评论

共计 1542 个字符,预计需要花费 4 分钟才能阅读完成。

在 Java 中,使用 sort() 方法可以对数组进行排序,sort() 方法有两个重载的版本:一个对基本数据类型数组进行排序,一个对对象数组进行排序。

  1. 对基本数据类型数组排序:

sort() 方法可以直接对基本数据类型数组进行升序排序,也可以通过传入 Comparator 对象对数组进行降序排序。
升序排序示例:

int[] arr = {5, 3, 1, 4, 2};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));  // 输出:[1, 2, 3, 4, 5]

降序排序示例:

int[] arr = {5, 3, 1, 4, 2};
Arrays.sort(arr);
int n = arr.length;
for (int i = 0; i < n / 2; i++) {int temp = arr[i];
arr[i] = arr[n - 1 - i];
arr[n - 1 - i] = temp;
}
System.out.println(Arrays.toString(arr));  // 输出:[5, 4, 3, 2, 1]
  1. 对对象数组排序:

对于对象数组,可以实现 Comparable 接口或者使用 Comparator 对象来指定排序规则。
实现 Comparable 接口示例:

class Person implements Comparable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {return name;}
public int getAge() {return age;}
@Override
public int compareTo(Person o) {return this.age - o.getAge();  // 按照年龄升序排序
}
@Override
public String toString() {return "Person [name=" + name + ", age=" + age + "]";
}
}
Person[] people = {new Person("Alice", 20),
new Person("Bob", 18),
new Person("Charlie", 22)
};
Arrays.sort(people);
System.out.println(Arrays.toString(people));  // 输出:[Person [name=Bob, age=18], Person [name=Alice, age=20], Person [name=Charlie, age=22]]

使用 Comparator 对象示例:

class AgeComparator implements Comparator {
@Override
public int compare(Person p1, Person p2) {return p2.getAge() - p1.getAge();  // 按照年龄降序排序}
}
Person[] people = {new Person("Alice", 20),
new Person("Bob", 18),
new Person("Charlie", 22)
};
Arrays.sort(people, new AgeComparator());
System.out.println(Arrays.toString(people));  // 输出:[Person [name=Charlie, age=22], Person [name=Alice, age=20], Person [name=Bob, age=18]]

以上就是对 Java 中 sort() 方法进行数组排序的详细解释,包括对基本数据类型数组和对象数组的升序和降序排序的示例。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-22发表,共计1542字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)