当前位置: 首页 > news >正文

快速掌握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语句里面的大于号改成了小于号,这样每次比较的时候,每次较小的元素都会被交换至右边,从而实现了降序排序。

对于常见的排序方法我们已经给大家讲解了,后续讲解到包装类的时候会单独拿出来再给大家讲解一下如何通过内置的方法来进行降序排序。

下一文我们将讲解,多维数组。

声明:本文无任何商用目的,纯粹的分享学习交流,欢迎大家指正文中出错以及不足的地方,相互交流学习,共同进步。

http://www.dtcms.com/a/462851.html

相关文章:

  • 从数据孤岛到生态协同:采购管理系统的跨系统集成方案
  • 厦门建站网址费用平台制作专业网站制作
  • 做网站的地方咋做网站
  • 提升板式换热器换热效率
  • 前端核心框架vue之项目篇(cli、vite 5/5)
  • 南昌网站建设咨询上海设计公司排名招聘
  • 网站用php做的吗网站建设的知名公司
  • 长春网站公司有哪些内容个人可以开发app软件吗
  • java-网络编程-UDP,TCP通信
  • 北京外包做网站如何报价抖音小程序变现教程
  • 邮箱域名可以做网站吗免费网站打包
  • 基于AT32的RT-Thread移植
  • 物流公司排名网站建设乐云seo
  • 组合两个表 与 从不订购的客户
  • 常熟企业网站建设2018做网站的软件
  • 嵌入式字符串解析自我批斗练习
  • PID控制器的不同的传递函数与参数形式
  • 网站建设与企业发展平面设计兼职接单
  • 网站 模板 下载青岛学网站建设的学校
  • vue啊哈哈哈哈哈哈哈哈
  • 广州网站设计实力乐云seo国外做美食的网站
  • Git安装与配置:操作步骤+Gitee绑定
  • 深圳网站建设补助网站非法篡改
  • C语言字符串安全查找 :strchr_s、strrchr_s、strstr_s
  • 微观世界的“尺子”,数码显微测量仪的原理与多元应用
  • jsp网站开发实例视频网站自助建设平台百度
  • 海思 / ASR / 展锐芯片实测:2025 随身 WiFi 选购核心参数与场景适配方案
  • 条件语句练习题
  • JLINKKeil调试 软硬件版本驱动对齐
  • wordpress 模板层次结构信息图百度网站关键词优化在哪里做