Java编程进阶之路:学习Collections和Arrays的强大功能
摘要助手
切换
SummaryGPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往订阅 💥
前往评论 💬
👀 部署教程
Java编程进阶之路:学习Collections和Arrays的强大功能
dong4jCollections 类
此类方法众多, 只介绍几个常用方法
- sort() 对元素进行排序, 可以传入比较器
- max() 返回最大元素, 可以传入比较器
- min() 返回最小元素, 可以传比较器
- reverse() 反排序
- shuffle() 混排
Arrays 类
此类包含用来操作数组(比如排序和搜索)的各种方法。
方法更多, 还是看 API 吧
比较器
Comparable
内部比较器public interface Comparable
此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。int compareTo(T o)
一个类继承了 Comparable 接口后, 重写 compareTo() 方法, 就能按照我们自己的规则排序
例子:
1 | public class Student implements Comparable<Student>{ |
当把 Student 对象存储在 List 集合中的时候,
可以使用 Collections 工具类对这个 Student 集合进行排序.
- 如果调用 Collections 的
sort(List<T> list)
方法, 就会根据元素的自然顺序 对指定列表按升序进行排序 - 当调用
sort(List<T> list, Comparator<? super T> c)
方法时,
当我们传入一个比较器的时候, 就会根据我们自己定义的规则进行排序
1 | ArrayList<Student> arrayStudent = new ArrayList<Student>(); |
因为在 Student 类继承 Comparable 接口, 重写了此接口的 compareTo() 方法, 当对 arrayStudent 集合进行排序的时候, 会按照我们重写后的规则进行排序
Comparator
外部比较器
接着上面的例子
重新定义一个实现了 Comparator 接口的类
1 | public class StudentComparator implements Comparator<Student>{ |
然后调用Collections.sort(arrayStudent,new StudentComparator());
将按照我们的规则进行排序.
在以前我们只能比较基本数据类型和字符串
现在学习了比较器之后, 我们就可以比较 (排序) 对象了,
只要继承了 Comparable 或者传入一个实现了 Comparator 接口的自己定义的比较规则的对象,
就可以按照我们的想法对元素进行排序.
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果