在Java中,你可以使用多种方法对数据进行排序。以下是几种常用的排序方法:
内置排序方法
使用`Arrays.sort()`方法对数组进行排序。
import java.util.Arrays;public class Test {public static void main(String[] args) {int[] a = {5, 4, 2, 4, 9, 1};Arrays.sort(a);for (int i : a) {System.out.print(i + " ");}}}
冒泡排序
通过比较相邻素并交换位置,将最大或最小值“冒泡”到数组的末尾。
public static int[] bubbleSort(int[] args) {for (int i = 0; i < args.length - 1; i++) {for (int j = i + 1; j < args.length; j++) {if (args[i] > args[j]) {int temp = args[i];args[i] = args[j];args[j] = temp;}}}return args;}
选择排序
遍历数组,每次选择剩余素中的最小(或最大)值,并将其放到已排序序列的末尾。
public static int[] selectionSort(int[] args) {for (int i = 0; i < args.length - 1; i++) {int minIndex = i;for (int j = i + 1; j < args.length; j++) {if (args[j] < args[minIndex]) {minIndex = j;}}int temp = args[i];args[i] = args[minIndex];args[minIndex] = temp;}return args;}
插入排序
将未排序的素逐个插入到已排序序列中的适当位置。
public static int[] insertionSort(int[] args) {for (int i = 1; i < args.length; i++) {int key = args[i];int j = i - 1;while (j >= 0 && args[j] > key) {args[j + 1] = args[j];j = j - 1;}args[j + 1] = key;}return args;}
自定义排序
实现`Comparable`接口或创建自定义比较器来对对象进行排序。
class Record implements Comparable{ String name;int age;Record(String name, int age) {this.name = name;this.age = age;}@Overridepublic int compareTo(Record other) {return this.age - other.age;}}public class TestSort {public static void main(String[] args) {ArrayListrecords = new ArrayList<>(); records.add(new Record("Viru", 25));records.add(new Record("Saurav", 30));records.add(new Record("Mukesh", 20));Collections.sort(records);for (Record record : records) {System.out.println(record.name + " " + record.age);}}}
使用`Collections.sort()`对集合排序
如果集合素是`List`类型,可以使用`Collections.sort()`方法进行排序。
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class TestSort {public static void main(String[] args) {Listlist = new ArrayList<>(); list.add("Viru");list.add("Saurav");list.add("Mukesh");list.add("Tahir");Collections.sort(list);for (String item : list) {System.out.println(item);}}}
以上是Java中常用的排序方法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/144185.html