快速掌握java中数组的排序
我们紧接着来讲解一下java中数组的排序。
为什么要对数组进行排序呢?
首先,我们将一个数组的数据进行排序之后,可以进行快速的查找,对于一些成绩,商品的价格等数据可以方便进行分析。也就是方便分析数据,提升效率。简单的来说就是能让你更方便的使用。
常见的几种排序方法
Arrays.sort()
这是jdk里面内置的排序方法。也是实际开发中最常用的排序方法。默认是升序排序。
我们来给大家演示一下如何使用
因为排序本质上也是对数组内数据的访问,所以排序前不需要单独遍历数组。
import java.util.Arrays;public class Test {public static void main(String[] args) {int[] age = {15,60,45,23,65,50};System.out.println(Arrays.toString(age));//排序前先打印一下数组Arrays.sort(age);System.out.println(Arrays.toString(age));//排序后再次打印数组}
}
//
[15, 60, 45, 23, 65, 50]
[15, 23, 45, 50, 60, 65]
看一下输出,自动就给排序好了,是不是非常的方便。这是jdk内置的封装好的方法,平时开发时可以直接拿来使用。
冒泡排序
冒泡排序大家多多少少都听说过,这是一种算法排序,为了方便大家理解,我在这里也给大家讲解一下。我们先上代码,然后讲解。
import java.util.Arrays;public class Test {public static void main(String[] args) {int[] age = {15,60,45,23,65,50};System.out.println(Arrays.toString(age));//排序前先打印一下数组for(int i=0;i<age.length;i++){for(int j=0;j<age.length-1;j++){if(age[j]>age[j+1]){int temp = age[j];age[j] = age[j+1];age[j+1] = temp;}}}System.out.println(Arrays.toString(age));}
}//输出结果为
[15, 60, 45, 23, 65, 50]
[15, 23, 45, 50, 60, 65]
冒泡排序的原理就是通过双层循环,外层循环用来控制排序的轮数,内层循环每次用来比较两个元素的大小。外层的每一轮都会把最大的元素推到最后面。这一循环完成后就完成了排序。
既然有升序排序,那么肯定有降序排序。虽然jdk有一些内置的方法来实现降序排序,但是里面涉及到一些包装类,目前我们没有讲解到包装类。所以那些内置方法就先不使用。
降序排序
想一想,我们通过冒泡排序实现了升序排序,那么我们能不能通过修改冒泡排序的逻辑,从而实现降序排序呢。答案是肯定的,而且修改方法非常简单。只需要修改内层循环里面的if语判断即可。
import java.util.Arrays;public class Test {public static void main(String[] args) {int[] age = {15,60,45,23,65,50};System.out.println(Arrays.toString(age));//排序前先打印一下数组for(int i=0;i<age.length;i++){for(int j=0;j<age.length-1;j++){if(age[j]<age[j+1]){int temp = age[j];age[j] = age[j+1];age[j+1] = temp;}}}System.out.println(Arrays.toString(age));}
}
//输出结果
[15, 60, 45, 23, 65, 50]
[65, 60, 50, 45, 23, 15]
我们将if语句里面的大于号改成了小于号,这样每次比较的时候,每次较小的元素都会被交换至右边,从而实现了降序排序。
对于常见的排序方法我们已经给大家讲解了,后续讲解到包装类的时候会单独拿出来再给大家讲解一下如何通过内置的方法来进行降序排序。
下一文我们将讲解,多维数组。
声明:本文无任何商用目的,纯粹的分享学习交流,欢迎大家指正文中出错以及不足的地方,相互交流学习,共同进步。