电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解Java sort()數(shù)組排序(升序和降序)

瀏覽:7日期:2022-08-18 08:36:05

我們?cè)趯W(xué)習(xí) Java 的過(guò)程中肯定會(huì)遇到對(duì)數(shù)組進(jìn)行升序或降序等排序問(wèn)題,本節(jié)主要介紹如何實(shí)現(xiàn) Java 數(shù)組的升序和降序。Java 語(yǔ)言使用 Arrays 類(lèi)提供的 sort() 方法來(lái)對(duì)數(shù)組進(jìn)行排序。

升序

使用 java.util.Arrays 類(lèi)中的 sort() 方法對(duì)數(shù)組進(jìn)行升序分為以下兩步:

導(dǎo)入 java.util.Arrays 包。 使用 Arrays.sort(數(shù)組名) 語(yǔ)法對(duì)數(shù)組進(jìn)行排序,排序規(guī)則是從小到大,即升序。

假設(shè)在數(shù)組 scores 中存放了 5 名學(xué)生的成績(jī),現(xiàn)在要實(shí)現(xiàn)從低到高排列的功能。在這里使用 Arrays.sort() 方法來(lái)實(shí)現(xiàn),具體代碼如下:

public static void main(String[] args) { // 定義含有5個(gè)元素的數(shù)組 double[] scores = new double[] { 78, 45, 85, 97, 87 }; System.out.println('排序前數(shù)組內(nèi)容如下:'); // 對(duì)scores數(shù)組進(jìn)行循環(huán)遍歷 for (int i = 0; i < scores.length; i++) { System.out.print(scores[i] + 't'); } System.out.println('n排序后的數(shù)組內(nèi)容如下:'); // 對(duì)數(shù)組進(jìn)行排序 Arrays.sort(scores); // 遍歷排序后的數(shù)組 for (int j = 0; j < scores.length; j++) { System.out.print(scores[j] + 't'); }}

如上述代碼所示,要對(duì)一個(gè)數(shù)組進(jìn)行升序排列,只需要調(diào)用 Arrays.sort() 方法即可。運(yùn)行后的輸出結(jié)果如下所示。

排序前數(shù)組內(nèi)容如下:78.0 45.0 85.0 97.0 87.0 排序后的數(shù)組內(nèi)容如下:45.0 78.0 85.0 87.0 97.0

降序

在 Java 語(yǔ)言中使用 sort 實(shí)現(xiàn)降序有兩種方法,簡(jiǎn)單了解即可。

1)利用 Collections.reverseOrder() 方法(Collections 是一個(gè)包裝類(lèi)。大家可以學(xué)習(xí)《Java Collections類(lèi)》一節(jié)詳細(xì)了解):

public static void main(String[] args) { Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 數(shù)組類(lèi)型為Integer Arrays.sort(a, Collections.reverseOrder()); for (int arr : a) { System.out.print(arr + ' '); }}

輸出結(jié)果如下:9 8 7 6 5 4 3 2 1 0

2)實(shí)現(xiàn) Comparator 接口的復(fù)寫(xiě) compare() 方法,代碼如下:

public class Test { public static void main(String[] args) { /* * 注意,要想改變默認(rèn)的排列順序,不能使用基本類(lèi)型(int,double,char)而要使用它們對(duì)應(yīng)的類(lèi) */ Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 定義一個(gè)自定義類(lèi)MyComparator的對(duì)象 Comparator cmp = new MyComparator(); Arrays.sort(a, cmp); for (int arr : a) { System.out.print(arr + ' '); } }}// 實(shí)現(xiàn)Comparator接口class MyComparator implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { /* * 如果o1小于o2,我們就返回正值,如果o1大于o2我們就返回負(fù)值, 這樣顛倒一下,就可以實(shí)現(xiàn)降序排序了,反之即可自定義升序排序了 */ return o2 - o1; }}

輸出結(jié)果如下所示。9 8 7 6 5 4 3 2 1 0

注意:使用以上兩種方法時(shí),數(shù)組必須是包裝類(lèi)型,否則會(huì)編譯不通過(guò)。

在 Java 中實(shí)現(xiàn)數(shù)組排序的方式很多,除了利用以上的幾種方法外,還可以編寫(xiě)自定義方法來(lái)實(shí)現(xiàn)自己的排序算法,有興趣的讀者可以嘗試編寫(xiě)。

Java排序方法sort的使用詳解

對(duì)數(shù)組的排序:

//對(duì)數(shù)組排序public void arraySort(){ int[] arr = {1,4,6,333,8,2}; Arrays.sort(arr);//使用java.util.Arrays對(duì)象的sort方法 for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); }}

對(duì)集合的排序:

//對(duì)list升序排序 public void listSort1(){ List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(55); list.add(9); list.add(0); list.add(2); Collections.sort(list);//使用Collections的sort方法 for(int a :list){ System.out.println(a); } } //對(duì)list降序排序 public void listSort2(){ List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(55); list.add(9); list.add(0); list.add(2); Collections.sort(list, new Comparator<Integer>() { public int compare(Integer o1, Integer o2) {return o2 - o1; } });//使用Collections的sort方法,并且重寫(xiě)compare方法 for(int a :list){ System.out.println(a); } }

到此這篇關(guān)于詳解Java sort()數(shù)組排序(升序和降序)的文章就介紹到這了,更多相關(guān)Java sort()數(shù)組排序內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 自清洗过滤器,浅层砂过滤器,叠片过滤器厂家-新乡市宇清净化 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 商用绞肉机-熟肉切片机-冻肉切丁机-猪肉开条机 - 广州市正盈机械设备有限公司 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 飞飞影视_热门电影在线观看_影视大全 | 重庆轻质隔墙板-重庆安吉升科技有限公司| 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 全自动变压器变比组别测试仪-手持式直流电阻测试仪-上海来扬电气 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 至顶网 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 渗透仪-直剪仪-三轴仪|苏州昱创百科 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 压力变送器-上海武锐自动化设备有限公司 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 深圳宣传片制作-企业宣传视频制作-产品视频拍摄-产品动画制作-短视频拍摄制作公司 | 1000帧高速摄像机|工业高速相机厂家|科天健光电技术 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 上海深蓝_缠绕机_缠膜机-上海深蓝机械装备有限公司 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 |