集合Day01 List接口 ArrayList LinkedList 类 Iterator迭代器

##数组与集合的区别
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);
				}	
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值