java工具类快速定位

来源:互联网 发布:停用移动数据总是弹出 编辑:程序博客网 时间:2024/06/07 06:13

其实 java作为一个完善的类库,本身就提供了很多权威工具类,因此我们平时写代码时候,如果能够很好的利用现有的工具,将会使开发的速度得到很大的提高,而代码的bug也会更少,毕竟经过实践反复测试完善的代码,不能否认具有更高的权威性,利用这些功能,对于代码的规范,标准化也有显著的好处。

Arrays数组工具类

主要功能,如下(都是public static):

方法 描述 sort(T[] a) 重载的数组排序方法,所以的数组类型都有支持(如果是引用类型,调用此方法必须可自身进行比较,也就是实现Comparable接口) sort(T[] a, Comparator c) 自己提供比较器的排序方法 int binarySearch(long[] a, long key) 重载(各种类型数组)的二分查找,数组必须是有序的。 boolean equals(Object[] a, Object[] a2) 重载的equals方法,支持除了boolean外的全部基本类型和引用类型,操作都是循环比较数组中的每个元素 fill(int[] a, int val) 一系列(全部数据类型)重载的填充数组的方法,实现就是循环用val填充数组的每个元素 T[] copyOf(T[] original, int newLength) 一系列(全部基本数据类型)重载的数组复制的方法,实现就是:由于数组长度不可变,那么必然的就要新new一个和原来同类型的数组,长度为newLength,然后利用本地方法System.arraycopy把旧数组的元素全部顺序复制到新数组 int[] copyOfRange(int[] original, int from, int to) (全部基本数据类型)重载的,把旧数组的区间数据复制到新数组,新数组的长度为复制的数据数量。 int hashCode(char a[]) 数组的重载hashcode方法,支持全部的数据类型 String toString(int[] a) 重载的数组的tostring方法,按照这种方式拼接数组元素[a, b, c] < T > List< T > asList(T… a) 就是数组转换为集合的方法。此方法返回的list是基于参数数组的,不支持改变数组长度的集合操作方法,如add操作。

Collections集合工具类

方法 描述 sort(List< T > list) list排序,实际操作是:把集合的元素放入数组中,再按Arrays.sort()方法进行数组排序,最后把排好序的数组元素依次填入到集合中(因为有些集合是链表) int binarySearch(List> list, T key) 集合的二分查找,要求集合有序 reverse(List list) 集合元素反转,实现:2个遍历器,一个从前往后,一个从后往前,一个一个元素进行遍历,并进行交换 swap(List list, int i, int j) 交换集合中2个元素的位置 fill(List list, T obj) 用obj填充集合的每个元素 copy(List dest, List src) 把src集合的元素依次复制到dest中,如果超过dest集合长度,则报错 min(Collection coll) 找出集合最小元素,每个元素和当前最小值进行比较,小的作为最新的最小值继续比较 max(Collection coll) 找出集合最大元素,实现同上(元素必须自己能比较,实现Comparable接口) replaceAll(List< T > list, T oldVal, T newVal) 替换集合中所有的oldval元素为newval元素,没什么好办法,遍历依次比较替换 int indexOfSubList(List source, List target) 在souce集合找到第一次完全匹配target集合的地方,返回匹配的开始位置。笨办法,2层循环 int lastIndexOfSubList(List source, List target) 在source集合中找到最后一次target出现的地方,实现也是2层循环只不过从后开始 addAll(Collection c, T… elements) 将数组的元素依次加入到集合 Collection unmodifiableCollection(Collection c) 包装原容器,让容器不可以改变(一些列容器的重载方法:list,set等),利用代理进行遍历,查询,涉及修改的操作全部异常 Collection synchronizedCollection(Collection c) 包装原容器,容容器线程安全(一些列容器的重载方法:list,set等),代理操作,每个操作都进行同步,这个方法应该不会用到,就如同hashtable和Vector道理一样锁区间太窄,不能灵活控制 Iterator< T > emptyIterator() 空的遍历器 Comparator reverseOrder() 返回逆序的遍历器 List emptyList() 返回空的集合,有set、map就不一一列举了,返回的都是静态内部类,为了保证集合为空而写的。

现阶段就分析到这里,还是那就话,规范,标准化,还是尽量用现有的方法,不过只有熟悉了,到时候才想得起来,也只有理解了,才用的放心

0 0
原创粉丝点击