数组的创建只有两种方式:
要么是静态初始化:数组类型[] 数组名 = {元素1,元素2};
要么是动态初始化:数组类型[] 数组名 = new 数组类型[长度];
如果不提前知道数组的长度或具体数值是无法创建数组的,只能使用其他巧妙的方法。
对啊?为什么要用集合?
因为数组的缺点是在不知道数组的长度或者具体数组是无法创建数组的,于是我们引进了集合,存储的容量是可变的。如果存储的数据长度经常发生改变我们就采用集合。
打印string,StringBuilder,ArrayList都不会出现内存地址,都是打印的元素。
ArrayList的初始容量为10.
ArrayList指定位置添加时,后面的元素依次后移,删除元素时后面的元素依次前移,根据元素进行删除时(使用remove),只能删除第一次出现的该元素。
泛型<E>只能是引用数据类型,不能是几本数据类型。
集合的遍历:
利用size()-1,实现像数组一样的遍历:for(int i = 0; i < list.size; i ++)
遍历集合时要注意remove后,后面的元素会前移,所以要最后要进行(i --)。
建议日后如果是变量和常量进行比较,使用常量调用方法,因为常量调用方法不会出现NULL的异常。
break还有自己的骚操作:
forexample:
for (int i = 0; i <10;i++) {
for (int j =0; j <10; j++) {
for (int k =0; k <10; k++) {
break;
}
}
}
break只能结束最内层的循环,想要终止最外层的循环,要使用这种方法:
u:for (int i = 0; i <10; i++) {
for (int j = 0; j <10; j++) {
for (int k = 0; k <10; k++) {
break u;
}
}
}
这里表示最外层的名字为u;