个人博客
专注IT梦想的地方

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

首先对于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的指定并支持同步(线程安全的)列表。

赞(0) 打赏
未经允许,不得转载本站任何文章:智言个人博客 » Java常用对象API中集合工具类之Collectons

评论 抢沙发

评论前必须登录!

 

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

支付宝扫一扫打赏

微信扫一扫打赏