集合框架构成图
Utilites
|-----Collections
|-----Arrays
binarySearch必须要有序集合
fill()方法可以将list集合中所有元素替换成指定元素
数组变集合
List<String> list = Array.asList(arr);//将数组变成集合,可以使用集合的思想和方法来操作数组中的元素。
注意:将数组变成集合,不可以使用集合的增删方法。因为数组的长度是固定的。
Contains()、get()、indexof()、subList(); 如果增删会报错误
如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。
如果数组中的元素都是基本数据类型,那么将该数组作为集合中的元素存在。
集合变数组(toArry(T))
ArrayList<String> a1 = newArrayList<String>();
Al.toArray()
指定类型的数组到底要定义多长呢?
当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合的size();当指定类型数组长度大于了集合的size,就不会再创建数组,二十使用传递进来的数组。
为什么要将集合变数组?
为了限定对元素的操作。
高级for循环
格式:
For(数据类型 变量名:被遍历的集合(collection))或者数组
对集合进行遍历。只能获取集合元素,但是不能对集合进行操作
迭代器除了遍历,还可以进行remove集合中元素的动作。如果是用ListIterator,还可以在遍历过程中进行增删改查的动作。
传统for与高级for的区别?
高级for有一个局限性,必须有被遍历的目标。
建议在遍历数组的时候,还是希望用传统for,可以用角标对for操作。
JDK1.5版本出现的新特性
Public static void show(int a, int b, int);
Public static void shou(int … arr);//可变参数,其实就是一种数组参数的简写形式,不用每一次都手动的建立数组对象,只要将要操作的元素作为参数传递即可。隐式将这些参数封装成数组。
使用方法的可变参数时,注意可变参数一定要定义在参数列表的最后面。
静态导入(importstatic java.util.Arrays.*)
当类名重名时,需要制定具体包名
当方法重名时,制定具体所属的对象或者类
Import static java.lang.System.*;//导入System类中的所有静态成员