java中collection是一个接口,为啥有sort函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中collection是一个接口,为啥有sort函数相关的知识,希望对你有一定的参考价值。

Collection是接口,List Set都是继承该接口,
java.util.Collections是一个类,封装了一些对集合操作的方法,如sort排序,reverse倒置等等方法。
注意一个结尾有s
参考技术A 是collections,collection是接口,collections是类,两个不要弄混淆了

java中Collection和collections的区别

1、Collection是java.util中的一接口,他提供了对集合对象进行基本操作的通用接口方法。Collection接口在java类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口LIst与Set。

Collection(

List(LinkedLIst,ArrayList,Vector),

set(hashSet,treeSet)

2、Collection则是集合类的一个工具类或者是帮助类,提供给了一系列的静态方法,用于对集合中元素进行排列、搜索以及线程安全等各种操作。

1)排序(sort)

  使用sort方法可以根据元素的自然顺序,对指定列表按升序进行排序。列表中的所有元素必须实现Comparable接口。此列表内的所有元素都必须是使用指定比较器互相比较的。

List<Integer> list = new ArrayList<Integer>();
        int array[] = {112, 111, 23, 456, 231 };
        for (int i = 0; i < array.length; i++) {
            list.add(array[i]);
        }
        Collections.sort(list);
        for (int i = 0; i < array.length; i++) {
            System.out.println(list.get(i));
        }

 2)复制(copy)

          //定义一个list
		List<Integer> list=new ArrayList<Integer>();
		
		Integer math[]={23,34,432,23,43,12,23,32};
		
		
		for(int i=0;i<math.length;i++){
			list.add(math[i]);
		}
		//新的list
		List<Integer> lists=new ArrayList<Integer>(Arrays.asList(new Integer[list.size()]));
		System.out.println(list);
		//copy(被赋值的在前,是在后)
		Collections.copy(lists,list);
		System.out.println(lists.size());
		for (Integer integer : lists) {
			System.out.print(integer+",");
		}

  3)混排(Shuffling)

混排算法所做的正好与 sort 相反: 它打乱在一个 List 中可能有的任何排列的踪迹。也就是说,基于随机源的输入重排该 List, 这样的排列具有相同的可能性(假设随机源是公正的)。这个算法在实现一个碰运气的游戏中是非常有用的。例如,它可被用来混排代表一副牌的 Card 对象的一个 List 。另外,在生成测试案例时,它也是十分有用的。

Collections.Shuffling(list)

  4)反转(Reverse)
使用Reverse方法可以根据元素的自然顺序 对指定列表按降序进行排序。
Collections.reverse(list)

  5)替换所以的元素(Fill)

使用指定元素替换指定列表中的所有元素。

Collections.fill(li,"aaa");

  6)返回Collections中最小元素(min)
根据指定比较器产生的顺序,返回给定 collection 的最小元素。collection 中的所有元素都必须是通过指定比较器可相互比较的
Collections.min(list)

  7)返回Collections中最大元素(max)
根据指定比较器产生的顺序,返回给定 collection 的最大元素。collection 中的所有元素都必须是通过指定比较器可相互比较的
Collections.max(list)

  8) lastIndexOfSubList
返回指定源列表中最后一次出现指定目标列表的起始位置
int count = Collections.lastIndexOfSubList(list,li);

  9) IndexOfSubList
返回指定源列表中第一次出现指定目标列表的起始位置
int count = Collections.indexOfSubList(list,li);

  10) Rotate
根据指定的距离循环移动指定列表中的元素
Collections.rotate(list,-1);
如果是负数,则正向移动,正数则方向移动














以上是关于java中collection是一个接口,为啥有sort函数的主要内容,如果未能解决你的问题,请参考以下文章

java.util.Collection 为啥不实现新的 Stream 接口?

Java集合框架之 Collection 接口 #yyds干货盘点#

java代码中Collection c = new ArrayList 为啥说比ArrayList c = new ArrayListy用法灵活?

java集合之Collection架构

java 中 iterator 为啥翻译成迭代器呢

Java中Collection和Collections的区别