Collections与Arrays常用函数

一、Collections估工具类
1、Collections.sort()排序函数

此方法是对List类型的数据进行排序,对于自定义的实体类存入的list想要调用此函数排序,则实体类要实现Comparable接口并重写compareTo()方法,也可以实体类不实现Comparable接口,但是需要自定义一个类实现Comaprator接口并重写compare()方法。

Collections.sort()的两种形式

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

public static <T> void sort(List<T> list, Comparator<? super T> c) {
   list.sort(c);
}

底层调用是Arrays.sort()实现的

2、Collections.shuffle()

将List随机打乱顺序,底层会根据传入的是ArrayList还是LinkedList进行不同的处理。

3、Collections.binarySearch()

以二分的算法查找指定元素,注意最好将List变为有序的,否则可能会找不到,并且返回值也可能与预期值不一致。

4、Collections.max() 与Collections.min()

采用Collections内含的比较法获取最大与最小值,当然也可以传入自定义的实现Comparator接口比较

5、Collections.indexOfSubList()与Collections.lastIndexOfSubList()

参数是两个list,第二个是子list,分别返回的是subList在list中第一次出现和最后一次出现位置的索引

6、Collections.replaceAll()

替换指定元素为某元素,若要替换的值(旧元素)存在刚返回true,反之返回false

7、Collections.reverse()

反转集合中元素的顺序

8、Collections.rotate()

将list的后n个元素整体拿到前面来

9、Collections.copy();

参数为两个list,第一个list的长度要大于第二个,否则会报错,结果会将list2中的元素覆盖到list1中的前面

10、Collections.swap(strings1,2,3)

交换第2和第3个元素的位置

11、Collections.fill(strings1,“object”)

用object替换string1中的所有元素

二、Arrays类

Arrays主要包含了操作数组的常用方法

1、Arrays.toString(int[ ] array)

会以字符串的形式返回数组的全部值而无需手动遍历,一般用于打印数组,如下:

System.out.println(Arrays.toString(array));
2、Arrays.fill()

此方法对每一个基本类型都有两中重载形式,如下:

//把下标在第2到第4之间的元素置为100,顾前不顾后
Arrays.fill(array,2,4,100);
//把全部元素置为100
Arrays.fill(array,100);
3、Arrays.sort()

对数组进行排序,如果元素少于47,就采用插入排序;大于47且小于286就采用一种双轴快排;大于286采用归并排序。
默认进行的是升序排序,可以传入一个自定义的实现Compator接口,也可以对指定区间的元素进行排序。

4、Arrays.equals(int[ ] a, int[ ] a2)

比较两个数组是否相等

5、Arrays.binarySearch()

采用二分的方法查找元素下标,数组一定要有序,否则可能出错

6、Arrays.copeOf() 和Arrays.copeOfRange()

用于截取数组

Arrays.copyOf(array,3);
Arrays.copyOfRange(array,3,6);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值