java:数组集合-排序

本文介绍Java中使用Arrays和Collections类对数组和List集合进行排序的方法。包括实现Comparable接口以支持自定义类排序,以及通过创建Comparator类来实现更灵活的排序方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java. util. Arrays类:有一系列操作Array数组的static方法
Java.util. Collections类:有一系列操作集合的static方法
 
Arrays数组排序方法:参见JDK APIArrays.
List集合排序方法
Collections类里的sort()

 
 
方法1:元素实现Comparable接口
Java本身的一些类如:StringInteger基本数据类型等,都实现了Comparable接口,直接可以对这些元素排序。(默认升序)
而用户自定义的类,如要对其排序,则需实现Comparabla接口,实现compareTo()方法。
 
class Song implements Comparable<Song> {
public String songName;
 
public int compareTo(Song o) {
return songName.compareTo(o.songName);
//这是比较投机取巧的方法,因为String有它的compareTo()方法,所以借用就好,如果想降序,可以*-1
}
}
public class testA {
public static void main(String[] args) {
ArrayList<Song> list = new ArrayList<Song>();
..添加数据..
Collections.sort(list);
..列出list..
}
}
 
Song本身调用compareTo(Song o)方法,并与传入的Song参数进行比较,得出排序逻辑:
本身 > 参数 :返回正数 升序
本身 < 参数 :返回负数 降序
本身 = 参数 :返回0
 
方法2:自制Comparator
方法1中的list的元素只能有一种比较方法,要想有多种不同的比较方法,可自制Comparator。此方法不用实现Comparable接口
class Song{
public String songName;
}
class SongNameCompare implements Comparator<Song> {
public int compare(Song o1, Song o2) {
return o1.songName.compareTo(o2.songName);
}
}
public class testA {
public static void main(String[] args) {
ArrayList<Song> list = new ArrayList<Song>();
..添加数据..
Collections.sort(list, new SongNameCompare());
..列出list..
}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值