精华内容
下载资源
问答
  • 我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。升序使用 java.util.Arrays 类中...

    我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序。Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。

    升序

    使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步:

    导入 java.util.Arrays 包。

    使用 Arrays.sort(数组名) 语法对数组进行排序,排序规则是从小到大,即升序。

    假设在数组 scores 中存放了 5 名学生的成绩,现在要实现从低到高排列的功能。在这里使用 Arrays.sort() 方法来实现,具体代码如下:

    public static void main(String[] args) {

    // 定义含有5个元素的数组

    double[] scores = new double[] { 78, 45, 85, 97, 87 };

    System.out.println("排序前数组内容如下:");

    // 对scores数组进行循环遍历

    for (int i = 0; i < scores.length; i++) {

    System.out.print(scores[i] + "\t");

    }

    System.out.println("\n排序后的数组内容如下:");

    // 对数组进行排序

    Arrays.sort(scores);

    // 遍历排序后的数组

    for (int j = 0; j < scores.length; j++) {

    System.out.print(scores[j] + "\t");

    }

    }

    如上述代码所示,要对一个数组进行升序排列,只需要调用 Arrays.sort() 方法即可。运行后的输出结果如下所示。

    排序前数组内容如下:

    78.0 45.0 85.0 97.0 87.0

    排序后的数组内容如下:

    45.0 78.0 85.0 87.0 97.0

    降序

    在 Java 语言中使用 sort 实现降序有两种方法,简单了解即可。

    1)利用 Collections.reverseOrder() 方法(Collections 是一个包装类。大家可以学习《Java Collections类》一节详细了解):

    public static void main(String[] args) {

    Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 数组类型为Integer

    Arrays.sort(a, Collections.reverseOrder());

    for (int arr : a) {

    System.out.print(arr + " ");

    }

    }

    输出结果如下:

    9 8 7 6 5 4 3 2 1 0

    2)实现 Comparator 接口的复写 compare() 方法,代码如下:

    public class Test {

    public static void 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 arr : a) {

    System.out.print(arr + " ");

    }

    }

    }

    // 实现Comparator接口

    class MyComparator implements Comparator {

    @Override

    public int compare(Integer o1, Integer o2) {

    /*

    * 如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值, 这样颠倒一下,就可以实现降序排序了,反之即可自定义升序排序了

    */

    return o2 - o1;

    }

    }

    输出结果如下所示。

    9 8 7 6 5 4 3 2 1 0

    注意:使用以上两种方法时,数组必须是包装类型,否则会编译不通过。

    在 Java 中实现数组排序的方式很多,除了利用以上的几种方法外,还可以编写自定义方法来实现自己的排序算法,有兴趣的读者可以尝试编写。

    展开全文
  • Java sort()数组排序(升序和降序)我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。...

    Java sort()数组排序(升序和降序)

    我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序。Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。

    升序

    使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步:

    导入 java.util.Arrays 包。

    使用 Arrays.sort(数组名) 语法对数组进行排序,排序规则是从小到大,即升序。

    假设在数组 scores 中存放了 5 名学生的成绩,现在要实现从低到高排列的功能。在这里使用 Arrays.sort() 方法来实现,代码如下:

    public static void main(String[] args) {

    // 定义含有5个元素的数组

    double[] scores = new double[] { 78, 45, 85, 97, 87 };

    System.out.println("排序前数组内容如下:");

    // 对scores数组进行循环遍历

    for (int i = 0; i < scores.length; i++) {

    System.out.print(scores[i] + "\t");

    }

    System.out.println("\n排序后的数组内容如下:");

    // 对数组进行排序

    Arrays.sort(scores);

    // 遍历排序后的数组

    for (int j = 0; j < scores.length; j++) {

    System.out.print(scores[j] + "\t");

    }

    }

    如上述代码所示,要对一个数组进行升序排列,只需要调用 Arrays.sort() 方法即可。运行后的输出结果:

    排序前数组内容如下:

    78.0 45.0 85.0 97.0 87.0

    排序后的数组内容如下:

    45.0 78.0 85.0 87.0 97.0

    降序

    在 Java 语言中使用 sort 实现降序有两种方法,简单了解即可。

    1)利用 Collections.reverseOrder() 方法(Collections 是一个包装类。大家可以学习《Java Collections类》一节详细了解):

    public static void main(String[] args) {

    Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 数组类型为Integer

    Arrays.sort(a, Collections.reverseOrder());

    for (int arr : a) {

    System.out.print(arr + " ");

    }

    }

    输出结果如下:

    9 8 7 6 5 4 3 2 1 0

    2)实现 Comparator 接口的复写 compare() 方法,代码如下:

    public class Test {

    public static void 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 arr : a) {

    System.out.print(arr + " ");

    }

    }

    }

    // 实现Comparator接口

    class MyComparator implements Comparator {

    @Override

    public int compare(Integer o1, Integer o2) {

    /*

    * 如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值, 这样颠倒一下,就可以实现降序排序了,反之即可自定义升序排序了

    */

    return o2 - o1;

    }

    }

    输出结果:

    9 8 7 6 5 4 3 2 1 0

    注意:使用以上两种方法时,数组必须是包装类型,否则会编译不通过。

    在 Java 中实现数组排序的方式很多,除了利用以上的几种方法外,还可以编写自定义方法来实现自己的排序算法。

    展开全文
  • 我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。升序使用 java.util.Arrays 类中...

    我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序。Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。

    升序

    使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步:

    导入 java.util.Arrays 包。

    使用 Arrays.sort(数组名) 语法对数组进行排序,排序规则是从小到大,即升序。

    假设在数组 scores 中存放了 5 名学生的成绩,现在要实现从低到高排列的功能。在这里使用 Arrays.sort() 方法来实现,具体代码如下:

    public static void main(String[] args) {

    // 定义含有5个元素的数组

    double[] scores = new double[] { 78, 45, 85, 97, 87 };

    System.out.println("排序前数组内容如下:");

    // 对scores数组进行循环遍历

    for (int i = 0; i < scores.length; i++) {

    System.out.print(scores[i] + "\t");

    }

    System.out.println("\n排序后的数组内容如下:");

    // 对数组进行排序

    Arrays.sort(scores);

    // 遍历排序后的数组

    for (int j = 0; j < scores.length; j++) {

    System.out.print(scores[j] + "\t");

    }

    }

    如上述代码所示,要对一个数组进行升序排列,只需要调用 Arrays.sort() 方法即可。运行后的输出结果如下所示。

    排序前数组内容如下:

    78.0    45.0    85.0    97.0    87.0

    排序后的数组内容如下:

    45.0    78.0    85.0    87.0    97.0

    降序

    在 Java 语言中使用 sort 实现降序有两种方法,简单了解即可。

    1)利用 Collections.reverseOrder() 方法(Collections 是一个包装类。大家可以学习《Java Collections类》一节详细了解):

    public static void main(String[] args) {

    Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 数组类型为Integer

    Arrays.sort(a, Collections.reverseOrder());

    for (int arr : a) {

    System.out.print(arr + " ");

    }

    }

    输出结果如下:

    9 8 7 6 5 4 3 2 1 0

    2)实现 Comparator 接口的复写 compare() 方法,代码如下:

    public class Test {

    public static void 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 arr : a) {

    System.out.print(arr + " ");

    }

    }

    }

    // 实现Comparator接口

    class MyComparator implements Comparator {

    @Override

    public int compare(Integer o1, Integer o2) {

    /*

    * 如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值, 这样颠倒一下,就可以实现降序排序了,反之即可自定义升序排序了

    */

    return o2 - o1;

    }

    }

    输出结果如下所示。

    9 8 7 6 5 4 3 2 1 0

    注意:使用以上两种方法时,数组必须是包装类型,否则会编译不通过。

    在 Java 中实现数组排序的方式很多,除了利用以上的几种方法外,还可以编写自定义方法来实现自己的排序算法,有兴趣的读者可以尝试编写。

    Java排序方法sort的使用详解

    对数组的排序:

    //对数组排序

    public void arraySort(){

    int[] arr = {1,4,6,333,8,2};

    Arrays.sort(arr);//使用java.util.Arrays对象的sort方法

    for(int i=0;i

    System.out.println(arr[i]);

    }

    }

    对集合的排序:

    //对list升序排序

    public void listSort1(){

    List list = new ArrayList();

    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);

    }

    }

    //对list降序排序

    public void listSort2(){

    List list = new ArrayList();

    list.add(1);

    list.add(55);

    list.add(9);

    list.add(0);

    list.add(2);

    Collections.sort(list, new Comparator() {

    public int compare(Integer o1, Integer o2) {

    return o2 - o1;

    }

    });//使用Collections的sort方法,并且重写compare方法

    for(int a :list){

    System.out.println(a);

    }

    }

    到此这篇关于详解Java sort()数组排序(升序和降序)的文章就介绍到这了,更多相关Java sort()数组排序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    展开全文
  • TreeMap 升序|降序排列import java.util.Comparator;import java.util.TreeMap;public class Main {public static void main(String[] args) {TreeMap map1 = new TreeMap(); //默认的TreeMap升序排列TreeMap map2= ...

    ebb0cd79d49cf6d02b168bc4f5dda777.png

    TreeMap 升序|降序排列

    import java.util.Comparator;

    import java.util.TreeMap;

    public class Main {

    public static void main(String[] args) {

    TreeMap map1 = new TreeMap(); //默认的TreeMap升序排列

    TreeMap map2= new TreeMap(new Comparator(){

    /*

    * int compare(Object o1, Object o2) 返回一个基本类型的整型,

    * 返回负数表示:o1 小于o2,

    * 返回0 表示:o1和o2相等,

    * 返回正数表示:o1大于o2。

    */

    public int compare(Integer a,Integer b){

    return b-a;

    }

    });

    map2.put(1,2);

    map2.put(2,4);

    map2.put(7, 1);

    map2.put(5,2);

    System.out.println("Map2="+map2);

    map1.put(1,2);

    map1.put(2,4);

    map1.put(7, 1);

    map1.put(5,2);

    System.out.println("map1="+map1);

    }

    }

    TreeMap按照value进行排序

    TreeMap底层是根据红黑树的数据结构构建的,默认是根据key的自然排序来组织(比如integer的大小,String的字典排序)。所以,TreeMap只能根据key来排序,是不能根据value来排序的(否则key来排序根本就不能形成TreeMap)。

    今天有个需求,就是要根据treeMap中的value排序。所以网上看了一下,大致的思路是把TreeMap的EntrySet转换成list,然后使用Collections.sor排序。

    代码:

    public static void sortByValue() {

    Map map = new TreeMap();

    map.put("a", "dddd");

    map.put("d", "aaaa");

    map.put("b", "cccc");

    map.put("c", "bbbb");

    List> list = new ArrayList>(map.entrySet());

    Collections.sort(list,new Comparator>() {

    //升序排序

    public int compare(Entry o1, Entry o2) {

    return o1.getValue().compareTo(o2.getValue());

    }

    });

    for (Entry e: list) {

    System.out.println(e.getKey()+":"+e.getValue());

    }

    }

    补充知识:使用比较器对Treemap按照value进行排序

    使用比较器对Treemap按照value进行排序(value值只有是string类型时才适用)

    有时我们需要根据TreeMap的value来进行排序。对value排序我们就需要借助于Collections的sort(List list, Comparator

    public class MapSortDemo {

    public static void main(String[] args) {

    Map map = new TreeMap();

    map.put("KFC", "kfc");

    map.put("WNBA", "wnba");

    map.put("NBA", "nba");

    map.put("CBA", "cba");

    Map resultMap = sortMapByKey(map); //按Key进行排序

    // Map resultMap = sortMapByValue(map); //按Value进行排序

    for (Map.Entry entry : resultMap.entrySet()) {

    System.out.println(entry.getKey() + " " + entry.getValue());

    }

    }

    /**

    * 使用 Map按value进行排序

    * @param map

    * @return

    */

    public static Map sortMapByValue(Map oriMap) {

    if (oriMap == null || oriMap.isEmpty()) {

    return null;

    }

    Map sortedMap = new LinkedHashMap();

    List> entryList = new ArrayList>(

    oriMap.entrySet());

    Collections.sort(entryList, new MapValueComparator());

    Iterator> iter = entryList.iterator();

    Map.Entry tmpEntry = null;

    while (iter.hasNext()) {

    tmpEntry = iter.next();

    sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());

    }

    return sortedMap;

    }

    }

    //比较器

    class MapValueComparator implements Comparator> {

    @Override

    public int compare(Entry me1, Entry me2) {

    return me1.getValue().compareTo(me2.getValue());

    }

    }

    方式二

    public class TreeMapTest {

    public static void main(String[] args) {

    Map map = new TreeMap();

    map.put("a", "ddddd");

    map.put("c", "bbbbb");

    map.put("d", "aaaaa");

    map.put("b", "ccccc");

    //这里将map.entrySet()转换成list

    List> list = new ArrayList>(map.entrySet());

    //然后通过比较器来实现排序

    Collections.sort(list,new Comparator>() {

    //升序排序

    public int compare(Entry o1,

    Entry o2) {

    return o1.getValue().compareTo(o2.getValue());

    }

    });

    for(Map.Entry mapping:list){

    System.out.println(mapping.getKey()+":"+mapping.getValue());

    }

    }

    }

    运行结果如下:

    d:aaaaa

    c:bbbbb

    b:ccccc

    a:ddddd

    以上这篇Java TreeMap升序|降序排列和按照value进行排序的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持云海天教程。

    原文链接:https://www.cnblogs.com/shamo89/p/9885779.html

    展开全文
  • TreeMap 升序|降序排列import java.util.Comparator;import java.util.TreeMap;public class Main {public static void main(String[] args) {TreeMap map1 = new TreeMap(); //默认的TreeMap升序排列TreeMap map2= ...
  • 我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。升序使用 java.util.Arrays 类中...
  • 我们在学习Java的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。升序使用 java.util.Arrays 类中的 ...
  • import java.util.Arrays; //冒泡排序 public class Test01 { public static void sort(int[] a){//创建排序的方法 int temp=0;//临时变量 for (int i = 0; i < a.length-1; i++) {//外层循环,相当于排序的...
  • Java排序升序降序

    2019-03-22 09:44:00
    以前在学校学排序的时候,总是自己写排序的代码,真正到工作中,直接使用java提供的排序方法,但最近发现行业默认的学习时有些不一样。  以前总是在进行排序时如果前边的数字后边数字的差为负则交换两个数字的...
  • Java冒泡排序升序和降序

    千次阅读 2014-03-21 14:19:42
    以新的数据位置继续比较第二个数第三个的大小,以此类推,则最终最大的数会排在最后一位,此时为升序排序;反之为降序排序。 /** 冒泡升序排序 **/ public static int[] ascSort(int[] param) { int
  • java升序和降序排序方法及原理

    千次阅读 2019-08-28 17:23:50
    排序的思路是,冒泡排序是每一次取一个数与其它数进行比较,如果你的数比另一个数大,两个进行位置交换,依次类推。 public class DemoSort { public static void main(String[] arg) { int sortArr[] = new int[]...
  • Java选择排序升序和降序

    千次阅读 2014-03-21 16:22:06
    选择排序是简单排序的一种,其排序思想为:首先将第一个数标记为最大数,其位置为最大数的位置;然后排除第一个数,使用第一个数剩下的数依次比较,若剩下的数大于第一个数,则继续比较,直到找到最大数为止;最后...
  • 选择排序是简单排序的一种,其排序思想为:首先将第一个数标记为最大数,其位置为最大数的位置;然后排除第一个数,使用第一个数剩下的数依次比较,若剩下的数大于第一个数,则继续比较,直到.../** 选择降序排序...
  • Java 用 sort 实现对数组的升序和降序排序一、升序二、降序 一、升序 使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步: 导入 java.util.Arrays 包。 使用 Arrays.sort(数组名) 语法对数组...
  • Pyhon列表排序升序和降序

    千次阅读 2020-05-14 21:48:32
    一、sort()方法: list.sort(cmp=None, key=None, reverse=False) cmp -- 可选参数, 如果...reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。 #列表升序 list1=['python','java','c++
  • 这些函数通过引用对 data.table 进行重新排序,并在每个列上按顺序选择升序降序 . 查看 ?setorder 了解更多信息 .此外, DT[order(.)] 也默认优化为使用 data.table 的内部快速顺序而不是 b...
  • Java中Arrays.sort()自定义数组的升序和降序排序

    万次阅读 多人点赞 2018-04-13 23:01:19
    Java学习中会遇到对数组进行升序或者降序排序的问题,其实Java语言提供给我们Array.sort(int [] arr)对数组进行升序排列,代码如下:package peng; import java.util.Arrays;  public class Testexample { ...
  • 二、实际用例Person 是定义的需要排序的对象,包括年龄姓名两个字段。class Person implementsComparable{privateString name;private intage;//重写toString()方法,输出对象时输出格式为:name:age@...
  • 快速排序升序和降序

    千次阅读 2017-07-17 16:52:02
    自己的写法,比较好理解 ...import java.util.Arrays; /** * Created by shixi on 2019/6/4 */ public class QuickSort1 { public static void main(String[] args) { int [] arr = {6, 1, 2, 7, 9, 3, 4, 5,...
  • TreeMap 升序|降序排列import java.util.Comparator;import java.util.TreeMap;public class Main {public static void main(String[] args) {TreeMap map1 = new TreeMap(); //默认的TreeMap升序排列TreeMap map2= ...
  • javalistList是Java中比较常用的调集类,关于List接口有许多完成类,本文就来简略介绍下其间几个重点的完成ArrayList、LinkedListVector之间的联系差异。List是一个接口,它承继于Collection的接口。它代表着...
  • 基本思想:通过对排序序列从前到后(从下标较小的元素开始),依次比较相邻的元素,...以下代码为:通过冒泡排序思想进行升降序排列的方法(封装) 以及通过flag进进行优化; package bTest; import java.text.Sim.
  • Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序升序 使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步: 导入 java.util.Arrays 包。 使用 Arrays.sort(数组名) 语法对数组...
  • 排序的思路主要就是建堆和排序两部分组成。 2.建堆算法 Williams算法建堆法【Wil64】 时间复杂度为O(nlogn),空间为O(1) Floyd算法建堆法【Floo64】 一种更为高效的建堆方法,可以在O(时间)O(1)空间内完成建...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 417
精华内容 166
关键字:

java排序升序和降序

java 订阅