JavaSE

Java常用对象API中集合工具类之Collectons

智言 2014年07月04日 阅读(5775) 0

首先对于Collectons而言,它里面的方法都是静态的。

.sort(List<T> list)

.sort(List<T> list, Comparator<? super T> c):对List数组进行自然排序。

它的排序原理源代码为:

public  static <T extends Comparable<? super T>> void sort(List<T> list) {

Object[] a = list.toArray();

sort(a);
ListIterator<T> i = list.listIterator();

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

i.next();

i.set((T)a[j]);

}

}

上面的是Collections集合框架工具类中sort方法的源代码,看着大家可能会比较脑袋大,不过没关系,下面是我重新写的一个同等作用的代码,原理是一样,只是看着会更容易理解一些。

public  static <T extends Comparable<? super T>> void sort(List<T> list) {

for(int i = 0;i<list.size()-1;i++){

for(int j = i+1;j<list.size();j++){

if(list.get(i).compareTo(list.get(j))>0){

  Collections.swap(list,i,j);//在指定列表的指定位置处交换元素。

}

}

}

}

当然你也可以定义一个比较器,然后在sort方法的括号中添加一个逗号并new一个对象即可。

 

 .max(Collection<? Extends T> coll):取出集合中的最大值,是按自然排序中取出最大值。

这个方法很简单就不举例说明了。

 

.shuffle(List<?> list):使用默认随机源对指定列表进行置换。

这个方法呢其实原理就像我们扔骰子的原理是一样的。

 

.fill(List<? super T> list, T obj):使用指定元素替换指定列表中的所有元素。

即把集合中的元素全部替换成指定的元素。

 

最后就是一些synchronized+Collection/List/Map/Set的指定并支持同步(线程安全的)列表。

分享到

智言

业务开发请联系QQ:5679361

评论 抢沙发

评论前必须登录!

 


如果你觉得本站内容对你有所帮助,比如提升你对编程方面的认识,你可以通过上面的二维码请博主喝杯咖啡,安好。

WEB前端开发部落(公众号:webapp_club)

群列表

前端初级学习群:初级Web前端学习群(后期为支付入群)
PHP初级学习群:PHP(MySQL)学习交流群
QQ群仅作为相关领域讨论平台,均提供高质量问题交流,禁止闲聊,无法接受的朋友请勿加群!
进群需要通过这里获取进群码才能进群哦!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏