ArrayList说我也想要排序(一)

一次面试被问到ArrayList如果要进行排序,该怎么办?当时我就被问懵了,ArrayList不是没有排序功能的吗。只能怪自己基础不扎实,所以这次就好好研究下这个问题。


先来看下上面这段代码,运行上面的代码得到的是输出如下,我们发现元素会维持被加入ArrayList的顺序。


现在我们有个需求,需要对ArrayList进行字母排序,或许你会去找ArrayList的说明文档,看看有没有sort()的方法,ArrayList有一大堆方法,但就是没有sort()之类可以排序的方法。

有的小伙伴就说,我可以不用ArrayList这个集合啊,使用TreeSet这个集合完全可以解决排序这个问题啊。

对,TreeSet可以实现,不过使用Collections类的sort()方法对ArrayList进行排序也可以解决这个问题。


看Collections类的源码的确有sort()这个方法,而且它的参数就是List.而ArrayList是实现List接口的,由于多态,ArrayList也可以作为参数传进去。

但是这个方法到底行不行呢?我们不妨试下,在原先代码上加Collections.sort()这个方法。



同样运行上面的代码,咦,这个方法的确对ArrayList进行字母排序了。好了现在我们ArrayList里放的是String,但如果我们放的是对象会发生什么呢?比如有个People对象,有name、age属性。现在我要对name进行字母排序,用这样的方法也可以吗?这个问题我们放到下一篇讨论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,245评论 18 399
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 4,798评论 0 4
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 5,078评论 0 2
  • 长辈们常常教育我们,不要让自己的人生输在起跑线上,因此我们相信起点决定了一个人的成败,起点越高越容易成功,起点...
    臧宇光阅读 3,529评论 0 4

友情链接更多精彩内容