======================================================

1、Arrays.sort(int[] a)

这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。

举例如下(点“+”可查看代码):

import java.util.Arrays;
publicclassMain {4publicstaticvoid main(String[] args) {
int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(a);
for(int i = 0; i < a.length; i ++) {
System.out.print(a[i] + " ");
}
}
}

运行结果如下:

0 1 2 3 4 5 6 7 8 9

---------------------------------------------------------

2、Arrays.sort(int[] a, int fromIndex, int toIndex)

这种形式是对数组部分排序,也就是对数组a的下标从fromIndex到toIndex-1的元素排序,注意:下标为toIndex的元素不参与排序哦!

举例如下(点“+”可查看代码):

import java.util.Arrays;
publicclassMain {4publicstaticvoid main(String[] args) {
int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
Arrays.sort(a, 0, 3);//3是指0位置开始后包括零位置 后的三个8for(int i = 0; i < a.length; i ++) {
System.out.print(a[i] + " ");
}
}
}

运行结果如下:

7 8 9 2 3 4 1 0 6 5

上例只是把 9 8 7排列成了7 8 9

----------------------------------------------------------

3、public static <T> void sort(T[] a,int fromIndex, int toIndex,  Comparator<? super T> c)

上面有一个拘束,就是排列顺序只能是从小到大,如果我们要从大到小,就要使用这种方式

这里牵扯到了Java里面的泛型,如果读者不是很了解,可以暂时不去管它,如果真的很想了解,建议查阅上面我推荐的那本书,上面有详细的介绍。

读者只需要读懂下面的例子就可以了,其实就是多了一个Comparator类型的参数而已。

package test;
import java.util.Arrays;
import java.util.Comparator;
publicclassMain {publicstaticvoid main(String[] args) {
//注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)//而要使用它们对应的类
Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
//定义一个自定义类MyComparator的对象
Comparator cmp = new MyComparator();
Arrays.sort(a, cmp);
for(int i = 0; i < a.length; i ++) {
System.out.print(a[i] + " ");
}
}
}
//Comparator是一个接口,所以这里我们自己定义的类MyComparator要implents该接口//而不是extends Comparator
class MyComparator implements Comparator<Integer>{
@Overridepublicint compare(Integer o1, Integer o2) {
//如果n1小于n2,我们就返回正值,如果n1大于n2我们就返回负值,//这样颠倒一下,就可以实现反向排序了if(o1 < o2) {
return1;
}elseif(o1 > o2) {
return -1;
}else {
return0;
}
}
}

Java中Array.sort()的几种用法(需要初始化要排序的对象)的更多相关文章

  1. Java中Array.sort()的几种用法

    ****************************************************** * 精品书籍推荐:<Java从入门到经通> * 本书系统全面.浅显易懂,非常适 ...

  2. java中 this 关键字的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...

  3. java中Array(数组)的用法

    8.Array(数组)    数组是作为对象来实现的.(really occupy the memopry,真实的占用内存 ) An array is a data structure that st ...

  4. Java中this关键字的几种用法

    1 . 当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量.(this是当前对象自己) 如:public class Hello { String s = " ...

  5. java基础——Collections.sort的两种用法

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static <T extends Comparable<? ...

  6. java基础 -- Collections.sort的两种用法

    /** * @author * @version * 类说明 */ package com.jabberchina.test; import java.util.ArrayList; import j ...

  7. java基础—— Collections.sort的两种用法

    package com.jabberchina.test; import java.util.ArrayList; import java.util.Collections; import java. ...

  8. Java中关于枚举的7种用法

    1.定义常量: public enum Color { RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE } 2.用于switch: enum Color { RE ...

  9. 分享js中的 sort 另一种用法

    // 看上去正常的结果: ['Google', 'Apple', 'Microsoft'].sort(); // ['Apple', 'Google', 'Microsoft']; // apple排 ...

随机推荐

  1. 疯狂Android讲义 - 学习笔记(六)

    第7章 7.1 使用简单图片 7.1.1 使用Drawable对象 7.1.2 Bitmap和BitmapFactory 7.2 绘图 7.2.1 Android绘图基础:Canvas.Paint等 ...

  2. 第 2 章 VBScript基本概念

    学习导航 VBScript 基本知识 变量.常量.数组 算术.逻辑.比较 运算符 2.1 VBScript是什么 VBScript程序语言是Microsoft公司VB(Visual Basic)程序语 ...

  3. transformjs:让天下没有难做的生意!不对,是特效!

    写在前面 transform是css3新增的一个属性,可是令开发者费解的是,其内部又有大量的属性如旋转.缩放.扭曲.平移,这也就导致了获取或者是设置transform中一个或者多个属性变得异常麻烦. ...

  4. [deviceone开发]-do_ImageView实现正圆的示例

    一.简介 我们经常需要用一个正圆形状的图片来设置头像,在do平台这个比较容易,就是通过设置圆角来实现,但是有几个小技巧需要解释一下 主要组件:do_ImageView 二.效果图 三.相关下载 htt ...

  5. asp.net mvc 简易通用自定义Pager实现分页

    asp.net mvc 自定义Pager实现分页 Intro 一个WEB应用程序中经常会用到数据分页,本文将实现一个简单通用的分页组件,包含一个 PagerModel (用来保存页码信息),一个 Ht ...

  6. SharePoint 2013 文档库中PPT转换PDF

    通过使用 PowerPoint Automation Services,可以从 PowerPoint 二进制文件格式 (.ppt) 和 PowerPoint Open XML 文件格式 (.pptx) ...

  7. SharePoint项目实践中如何实现非打破继承看上去很美的权限控制

    首先对于比较机密的数据,打破继承还是必须要的. 但是对于一些普通申请单据,虽然客户也希望用户不要看到其他人的申请单据,但是我还是不推荐打破继承,应为打破继承一方面会造成网站的权限管理特别的凌乱,另一方 ...

  8. iOS之清除缓存

    //清除缓存按钮的点击事件 - (void)putBufferBtnClicked:(UIButton *)btn{ CGFloat size = [self folderSizeAtPath:NSS ...

  9. Android Couldn't load BaiduMapSDK

    什么都不用多说,看代码 Couldn't load BaiduMapSDK_v3_2_0_15 from loader dalvik.system.PathClassLoader[DexPathLis ...

  10. [Android]Android端ORM框架——RapidORM(v1.0)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4748077.html  Android上主流的ORM框架有很多 ...