使用Java Arrays类进行数组排序
来源:互联网 发布:矩阵正交化有什么用 编辑:程序博客网 时间:2024/05/16 15:55
Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。
1.对基本数据类型的数组的排序
说明:(1)Arrays类中的sort()使用的是“经过调优的快速排序法”;
(2)比如int[],double[],char[]等基数据类型的数组,Arrays类之只是提供了默认的升序排列,没有提供相应的降序排列方法。
(3)要对基础类型的数组进行降序排序,需要将这些数组转化为对应的封装类数组,如Integer[],Double[],Character[]等,对这些类数组进行排序。(其实还不如先进行升序排序,自己在转为将序)。
用默认的升序对数组排序
函数原型:static void sort(int[] a)
对指定的 int 型数组按数字升序进行排序。
static void sort(int[] a, int fromIndex, int toIndex)
对指定 int 型数组的指定范围按数字升序进行排序。
代码实例:
package _10Arrays类提供的两个排序方法;import java.util.Arrays;public class _01基本数据类型数组的sort方法 {public static void main(String[] args) {//int[] a = { 1, 4, -1, 5, 0 };char[] a = {'b', 'd', 'c', 'e', 'a'};Arrays.sort(a);// 数组a[]的内容变为{-1,0,1,4,5}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + " ");}}}
2.对复合数据类型的数据的排序
函数原型: (1)public static<T> void sort(T[] a,Comparator c) 根据指定比较器产生的顺序对指定对象数组进行排序。
(2)public static<T> void sort(T[] a,int fromIndex,int toIndex,Comparator c) 根据指定比较器产生的顺序对指定对象数组的指定范围进行排序。
说明:这个两个排序算法是“经过调优的归并排序”算法。
package _10Arrays类提供的两个排序方法;import java.util.Arrays;import java.util.Comparator;class Node{private int key;private int value;public Node(int key, int value){this.key = key;this.value = value;}public int getKey() {return key;}public int getValue() {return value;}@Overridepublic String toString() {return this.key + "-" + this.value;}}class NodeComparator implements Comparator<Node>{@Overridepublic int compare(Node o1, Node o2) {//return o1.getKey()-o2.getKey()>0?1:o1.getKey()-o2.getKey()<0?-1:0;return o1.getValue()-o2.getValue()>0?1:o1.getValue()-o2.getValue()<0?-1:0;}}public class _02对实现Comparator接口的对象排序 {public static void main(String[] args) {Node[] array = new Node[4];for (int i = 0; i < array.length; i++) {//array[i] = new Node(array.length-i, i);array[i] = new Node(i+1, array.length-i);}System.out.println("before sort");for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}Arrays.sort(array, new NodeComparator());System.out.println("after sort");for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}}}
- 使用Java Arrays类进行数组排序
- 【Java】Java Arrays类进行数组排序
- Java Arrays类进行数组排序
- Java Arrays类进行数组排序
- Java Arrays类进行数组排序
- Java中Arrays类进行数组排序
- Java Arrays类进行数组排序
- Java Arrays类进行数组排序
- Java Arrays类进行数组排序需要注意的事情
- 【Java】使用 Arrays.copyOf 进行数组复制
- java学习记录——使用Arrays.sort对数组进行升序排序
- 使用Arrays对数组进行排序(一)
- 使用Arrays对数组进行排序(二)
- Java Arrays类对数组排序
- 利用Arrays类中的方法对数组进行排序
- [Java]Arrays.sort() 数组排序
- Java数组排序Arrays.sort
- 数组_用Arrays.sort()进行排序
- ADAS高级驾驶辅助系统
- IO编程
- Myeclipse连接mysql小程序案例
- 数据库的设计
- JAVA多线程售票问题
- 使用Java Arrays类进行数组排序
- Java HashMap HashTable
- sybase数据库中时间类型转换以及比较
- Xcode_7 iOS_9 获取设备型号 Objective-C (5)
- select 1,import,insert into 2016.08.18回顾
- IONIC 自定义插件使用aar
- python出现SyntaxError: Non-ASCII character '\xe6' in file 打印日期.py on line 1, but no encoding declared
- 跨域
- Css学习总结(2)——60个有用CSS代码片段