为了方便对Array对象、Collection对象进行操作,Java中提供了Arrays类和Collections类对其进行操作。
Arrsys:是数组的工具类,提供了对数组操作的工具方法。
Collections:是集合对象的工具类,提供了操作集合的工具方法。
其中Arrays和Collections中所有的方法都为静态的,不需要创建对象,直接使用类名调用即可。
Collections比较常用的方法:
1、为List集合进行排序:Collections.sort()
2、返回集合(List和Set)中的最大最小值:Collections.max和 Collections.min
3、对List结合进行二分查找:Collections.binarySearch,在调用此方法前,需要先进行升序排列Collections.sort()。查询到返回位置否则返回-(index)-1.
4、反转集合内元素的顺序。reverse(反转List的顺序),reverseOrder(强行反转比较器的顺序)返回的是一个比较器。
5、将集合类变成线程安全的(synchronizedCollection(Collection<T> c)、synchronizedList(List<T> list)、synchronizedMap(Map<K,V> m)、synchronizedSet(Set<T> s))
Arrays常用的方法:
Arrays.binarySearch//二分查找
Arrays.copyOf //复制
Arrays.copyOfRange//复制部分
Arrays.sort//排序
Arrays.fill//填充
Arrays.toString//字符串返回
Arrays.hashCode//哈希值
Arrays.asList//将数组转为List
jdk1.5新特性
Collection就有了一个父接口Iterable
该接口的出现封装了iterator方法,并提供了一个增强型的for循环
注:使用增强性for循环只能获取集合元素,不能对集合中的元素进行操作,迭代器在遍历中还可以进行remove操作
增强for循环和传统for循环区别:
增强for循环,使用时,必须要有被遍历的目标
而且只能遍历数组和Collection集合,简化了迭代
传统for循环,使用更加普遍
注意:遍历数组还是使用传统for循环,这样可以通过指针对数组中的元素进行操作
可变参数
在指定数据类型的后面加上三个点,其实就是一个数组类型的参数
以前定义一个int[]类型 参数,调用必须要定义好一个数组,再往里传递
而现在定义一个int…类型的参数,调用者,直接往该函数里传递元素即可
在运行时,自动会将这些实际参数封装到一个该类型的数组中。
注意:如果函数上有多个参数,可变参数一定要定义在参数列表最后边,否则编译失败