Java小白入门200例65之Java sort()数组排序

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例65之Java sort()数组排序相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  64.Java复制(拷贝)数组的几种方法
►下一篇  66.快速排序

案例1

Arrays.sort 对数组进行排序,注意是升序哦。

package demo.demo65;

import java.util.Arrays;

public class Sort1 {

	public static void main(String[] args) {
		int[] arr = {3,11,100,99,37,85}; 
		 // 对arr数组进行循环遍历
		System.out.println("排序前的数组内容如下:");
	    for (int i = 0; i < arr.length; i++) {
	        System.out.print(arr[i] + "\\t");
	    }
	    System.out.println("\\n排序后的数组内容如下:");
	    // 对数组进行排序
	    Arrays.sort(arr);
	    
	    // 遍历排序后的数组
	    for (int j = 0; j < arr.length; j++) {
	        System.out.print(arr[j] + "\\t");
	    }
	}

}

运行结果:

排序前的数组内容如下:
3 11 100 99 37 85
排序后的数组内容如下:
3 11 37 85 99 100

案例2:

Array.sort(int[] a , int fromIndex, int toIndex)

对数组的从fromIndex到toIndex进行升序排序,toIndex不包含。

package demo.demo65;

import java.util.Arrays;

public class Sort2 {

	public static void main(String[] args) {
		int[] arr = {3,11,100,99,37,85}; 
		 // 对arr数组进行循环遍历
		System.out.println("排序前的数组内容如下:");
	    for (int i = 0; i < arr.length; i++) {
	        System.out.print(arr[i] + "\\t");
	    }
	    System.out.println("\\n排序后的数组内容如下:");
	    // 对数组进行排序
	    Arrays.sort(arr,1,4);
	    
	    // 遍历排序后的数组
	    for (int j = 0; j < arr.length; j++) {
	        System.out.print(arr[j] + "\\t");
	    }
	}

}

运行结果:

排序前的数组内容如下:
3 11 100 99 37 85
排序后的数组内容如下:
3 11 99 100 37 85

实例3

使用 Comparator,直接传入,注意数组必须是包装类的(这里就用Integer)。

package demo.demo65;

import java.util.Arrays;
import java.util.Comparator;

public class Sort3 {

	public static void main(String[] args) {
		Integer[] arr = {3,11,100,99,37,85}; 
		 // 对arr数组进行循环遍历
		System.out.println("排序前的数组内容如下:");
	    for (int i = 0; i < arr.length; i++) {
	        System.out.print(arr[i] + "\\t");
	    }
	    System.out.println("\\n排序后的数组内容如下:");
	    // 对数组进行排序
	    Arrays.sort(arr,new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				return o1-o2;
			}
		});
	    
	    // 遍历排序后的数组
	    for (int j = 0; j < arr.length; j++) {
	        System.out.print(arr[j] + "\\t");
	    }
	}
}

运行结果:

排序前的数组内容如下:
3 11 100 99 37 85
排序后的数组内容如下:
3 11 37 85 99 100

可以看到这里是升序的,如果要降序怎么办呢?很简单,就是compare 方法里面改一下 o1-o2 为o2-o1

实例4

package demo.demo65;

import java.util.Arrays;
import java.util.Comparator;

public class Sort3 {

	public static void main(String[] args) {
		Integer[] arr = {3,11,100,99,37,85}; 
		 // 对arr数组进行循环遍历
		System.out.println("排序前的数组内容如下:");
	    for (int i = 0; i < arr.length; i++) {
	        System.out.print(arr[i] + "\\t");
	    }
	    System.out.println("\\n排序后的数组内容如下:");
	    // 对数组进行排序
	    Arrays.sort(arr,new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				return o2-o1;
			}
		});
	    
	    // 遍历排序后的数组
	    for (int j = 0; j < arr.length; j++) {
	        System.out.print(arr[j] + "\\t");
	    }
	}

}

运行结果:

排序前的数组内容如下:
3 11 100 99 37 85
排序后的数组内容如下:
100 99 85 37 11 3

到这里肯定有细心的小伙伴会问了,这样写不好看,能不能把Comparator拎出来呢?答案是可以的,我们来看下一个实例。

实例5

package demo.demo65;

import java.util.Arrays;
import java.util.Comparator;

public class Sort4 {

	public static void main(String[] args) {
		Integer[] arr = {3,11,100,99,37,85}; 
		 // 对arr数组进行循环遍历
		System.out.println("排序前的数组内容如下:");
	    for (int i = 0; i < arr.length; i++) {
	        System.out.print(arr[i] + "\\t");
	    }
	    System.out.println("\\n排序后的数组内容如下:");
	    // 对数组进行排序
	    Arrays.sort(arr,new myComparator());
	    
	    // 遍历排序后的数组
	    for (int j = 0; j < arr.length; j++) {
	        System.out.print(arr[j] + "\\t");
	    }
	}

}
//自己定义Comparator 
class myComparator implements Comparator<Integer>{
	@Override
	public int compare(Integer o1, Integer o2) {
		return o2-o1;
	}
}

运行结果:

排序前的数组内容如下:
3 11 100 99 37 85
排序后的数组内容如下:
100 99 85 37 11 3

小结

这节总结了“Java sort()数组排序”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  64.Java复制(拷贝)数组的几种方法
►下一篇  66.快速排序

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例65之Java sort()数组排序的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例95之Java匿名类

Java小白入门200例105之Java ArrayList类

Java小白入门200例107之Java LinkedList类

Java小白入门200例112之Java HashSet类

Java小白入门200例99之Java常见异常及处理

Java小白入门200例109之Java Map集合详解