今天已将近集合的尾声,面对这些接口和接口的实现类,一时半会还不是了解的透彻,每天都跟着老师的步子走,总感觉自己的腿好像受了伤似的,眼看要追到老师了,但还是那么远那么远,不管怎么样还是要坚持,一定要挺到最后。即使片体鳞伤、手足残缺也要爬到山顶,这样早晨的阳光总是会先照到你。
还是来回忆一下今天老师到底讲了哪些知识吧。在java.util中,提供了两个工具类来对数组和集合进行操作,分别是Collections和Arrays工具类,我发现了一个问题,好像工具类的名称后面都是加了s的,但是不知道java包中是不是都是这样。以后还要多多留意一下后面加s的是不是对操作提供某种功能。
Arrays类是对数组进行操作的,他里面全部都是静态方法,常用的包括:
static <T> List<T> asList(T...a):将数组转换成List集合
static int binarySearch(int[] a,int key):使用二叉树查找法早找指定元素在数组中的位置
static int[] copyOf(int[] original,int newLength):指定数组的长度并复制到其他数组
static int[] copyOfRange(int[] original, int from,int to):复制指定的范围
static boolean equals(int[] a,int[] a1):判断两个数组是否相等,
statid void fill(int[] a,int val):将数组中的值变为指定的值,相当于初始化值
static int hashCode(int[] a):返回数组的哈希值
static void sort(int[] a,int fromIndex,int toIndex):指定数组范围并进行排序
static <T> String toString(int[]a):将数组转换成字符串
static boolean deepEqasls(Object[] al,Object[] a2):判断两个对象的深度是否相等
Collections:
static <T extends Comparable<? super T>> void sort(List<T> list) :将集合进行排序,并可以指定集合参数的类型,要继承comparable接口,
static void swap(List<?> list, int i, int j) :根据指定的位置交换集合中的元素
static void shuffle(List<?> list) :对集合中元素位置随机发生变化
static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) :使用二分查找给出指定的值在集合中的位置
看看这些常用的方法,省去了我们大部分的时间,如果没有这些方法,像以前一样,什么功能都是自己写,对于数组的排序、查找等这些功能,只需要调用就可以了,不管是集合还是数组,他们之间既然存在关系,是否也能对在他们之间相互操作呢。那是当然的了,今天老师讲了,我刚才也操作了一遍,可以把一个数组转换成集合,也可以把集合转换成数组,但是还要注意一些问题,数组转集合:可以对数组中的元素通过集合中的方法进行操作,只要不影响其长度,可以使用集合中的任意方法。集合转数组:为了限制集合中元素操作,他只有一个length属性可以操作,不管是集合转数组还是数组转集合,长度是不可以改变的,不能对其进行增删操作。
唉!这个collection和collections看起来是一样的,难到真表示的是一个意思,不会的了,既然多一个s和少一个s,可能还是有些不同的地方。好,那就来看看到底是哪些地方不同:
collection collection是所有单列集合中的父接口,是以一组单个对象存储形式,根据需求,对象在内存中存储数据结构形式不同,collection就产生许多子接口,其中常用的是list接口和set接口,而List有ArrayList和linkedList两个常用的实现类,它是有序可重复的,set接口有hashset和treeset两个实现类,是无序不可重复的。
collections 他是对集合操作的一种工具类,类中的方法全部都是静态的,可以对集合的排序,交换位置,二分查找,元素顺序随机变化。等操作。
Jdk5.0为我们提供了一些新特性:今天先来看看这两个吧:
增强for循环:
也就是foreach语句,他是for(;;;)语句的一种简写形式,他也是吧集合或者数组中的元素遍历出来,但是他和for(;;;)还是有些区别,为什么呢?因为在循环多次的时候,传统的循环可以对其循环条件的控制,而增强for不能控制,增强for只能是简化书写,遍历集合或数组中的元素,不能直接遍历map集合,但是可以通过把map集合转成set集合后,再根据set集合迭代出元素。
可变参数:
可变参数的使用格式:
1.int add(T... a):该函数可以添加多个同种类型的数据,相当于函数的参数是数组形式。
2.int add(T a,T... a1):在传参数时,除了第一个为a,其他全部都是属于可变参数。
注意:可变参数必须放在其他参数的最后边。
这些知识点并不少啊,但是还要灵活运用。
---------------------- android培训、 java培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net/heima