如何用Java中的ArrayList实现排序?

作者:济宁麻将开发公司 阅读:28 次 发布时间:2023-06-21 21:09:34

摘要:数组是程序中使用频率极高的一种数据结构,它可以容纳不同类型的元素,其中有些元素需要排序。在Java中,我们可以使用ArrayList来实现排序。ArrayList是在Java中最常用的类之一,是一种动态数组。它可以根据动态插入的数据进行无限扩容,在内存空间不足时能够自动扩容,使得数...

数组是程序中使用频率极高的一种数据结构,它可以容纳不同类型的元素,其中有些元素需要排序。在Java中,我们可以使用ArrayList来实现排序。ArrayList是在Java中最常用的类之一,是一种动态数组。它可以根据动态插入的数据进行无限扩容,在内存空间不足时能够自动扩容,使得数组的大小可以自适应,可以非常方便地进行排序操作。

如何用Java中的ArrayList实现排序?

ArrayList的排序可以分为升序排序和降序排序。ArrayList提供了sort()方法来实现升序排序,提供了Comparator接口来实现降序排序。下面就分别来介绍一下二者的实现方法和使用场景。

1. ArrayList的升序排序

ArrayList提供了sort()方法来实现升序排序。sort()方法是用来完成自然排序的。如果你想把ArrayList中的元素进行升序排列,除了直接使用sort()方法外,还可以重写Comparator进行排序。sort()方法排序的规则是按照 compareTo()方法的返回值,如果两个元素相同的话就返回0,如果它们不相等,它会返回一个正值或者一个负的值。

ArrayList的排序示例代码如下:

```

import java.util.ArrayList;

import java.util.Collections;

public class ArrayListSort {

public static void main(String[] args) {

ArrayList arrayList = new ArrayList();

arrayList.add("apple");

arrayList.add("banana");

arrayList.add("pear");

arrayList.add("orange");

System.out.println("升序排序前 arrayList = " + arrayList);

Collections.sort(arrayList);

System.out.println("升序排序后 arrayList = " + arrayList);

}

}

```

当执行以上代码,输出结果为:

```

升序排序前 arrayList = [apple, banana, pear, orange]

升序排序后 arrayList = [apple, banana, orange, pear]

```

在这个示例代码中,sort()方法接收一个ArrayList的实例作为参数,并且返回一个排过序的ArrayList。调用Collections类的sort()方法,可实现ArrayList的升序排序。

2. ArrayList的降序排序

ArrayList提供了sort()方法用以实现自然排序,但很多时候我们需要指定一种降序规则,此时可以使用Comparator接口进行重写。

Comparator是一个接口,它用来实现两个对象的比较。Comparator可以实现升序排序也可以实现降序排序。它有两个方法: compare()和equals(),其中compare()方法将两个对象进行比较,根据返回值的正负决定升序或者降序排序。equals()方法在Java中用来判断两个对象是否相等。

下面对 ArrayList 进行降序排序的实例代码如下:

```

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

public class ArrayListSort {

public static void main(String[] args) {

ArrayList arrayList = new ArrayList();

arrayList.add("apple");

arrayList.add("banana");

arrayList.add("pear");

arrayList.add("orange");

System.out.println("降序排序前 arrayList = " + arrayList);

Collections.sort(arrayList,new Comparator(){

public int compare(String o1, String o2) {

/**如果 o1 小于 o2,那么返回一个负数*/

if (o1.compareTo(o2) < 0) {

return 1;

}

/**如果 o1 等于 o2,那么返回 0*/

if (o1.compareTo(o2) == 0) {

return 0;

}

return -1;

}

});

System.out.println("降序排序后 arrayList = " + arrayList);

}

}

```

当执行以上代码,输出结果为:

```

降序排序前 arrayList = [apple, banana, pear, orange]

降序排序后 arrayList = [pear, orange, banana, apple]

```

在这个示例代码中,我们通过实现Comparator接口,重写了compare()方法,用来实现ArrayList的降序排序。我们把该实现传递给了sort()方法,使得ArrayList按照我们定义出的降序规则进行排序。

除了使用匿名类来实现Comparator接口以外,还可以使用Lambda表达式来实现Comparator的重写。示例代码如下:

```

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

public class ArrayListSort {

public static void main(String[] args) {

ArrayList arrayList = new ArrayList();

arrayList.add("apple");

arrayList.add("banana");

arrayList.add("pear");

arrayList.add("orange");

System.out.println("降序排序前 arrayList = " + arrayList);

Collections.sort(arrayList,(a,b)->b.compareTo(a));

System.out.println("降序排序后 arrayList = " + arrayList);

}

}

```

当执行以上代码,输出结果同样为:

```

降序排序前 arrayList = [apple, banana, pear, orange]

降序排序后 arrayList = [pear, orange, banana, apple]

```

在这个示例代码中,我们使用了Lambda表达式来实现比较器的重写,使得ArrayList按照我们定义的降序规则进行排序。

3. 总结

ArrayList是Java中最常用的类之一,是一种动态数组。ArrayList提供了sort()方法来实现自然排序,提供了Comparator接口重写来实现降序排序。Comparator接口是一个接口,它用来实现两个对象之间的比较。Comparator可以实现升序排序也可以实现降序排序。在使用sort()方法时可以将自定义Comparator的实现对象作为参数传递给sort()方法。此外,我们还可以使用Lambda表达式来简化Comparator对象的实现。

希望这篇文章对你对ArrayList的排序有更深层次的了解,也希望对你在Java编程中有所帮助。

  • 原标题:如何用Java中的ArrayList实现排序?

  • 本文链接:https:////zxzx/17992.html

  • 本文由深圳飞扬众网小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与飞扬众网联系删除。
  • 微信二维码

    CTAPP999

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:166-2096-5058


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部