##数组与集合的区别
1.数组如果要扩容,采用copyOf()方法复制数组到大容量数组中的思路
int[] arr= new int[10]
再加上10个数据
int[] copy=Arrays.copyOf(arr,arr.length+10)
2.区别:数组长度固定,只能储存相同类型元素
集合长度理论上没有限制,可以储存不同类型的元素
单列集合 和 双列集合
- 单列集合,collection接口
- 双列集合,Map接口
单向迭代器
- 特点:只能从迭代器的第一个元素往最后一个元素迭代
- 作用:遍历集合,并在遍历的过程中操作集合(增强for做不了,普通for做起来麻烦)
- 使用方法
1.使用集合的**Iterator()**方法获取迭代器
Iterator i=list.iterator();
2.循环迭代器获取集合元素
while(list.hasNext()){ Object o=list.next(); }
注意:
1.循环一次,只能使用一次next().
2.使用remove()前,必须先调用一遍next()
迭代器取值原理
- 通过控制游标取值
- 游标从第一个元素依次向下移动
ArrayList中特有的双向迭代器 ListIterator()
- 游标在元素之间移动,可向上移动返回上一个元素(previous()),向下移动返回下一个元素(next()).
ArrayList中的冒泡排序
//已创建泛型集合
for (int i = 0; i < list.size()-1; i++) {
for (int j = 0; j < list.size()-1-i; j++) {
int before=list.get(j);
int next=list.get(j+1);
if (before>next) {
int temp=before;
list.set(j, next); //与数组中不同,不能直接赋值
list.set(j+1, temp);
}
}