集合

*数组:只能存放一种数据类型,可以是基本数据类型也可以是引用数据类型
*集合:
	增加删除元素效率高;
	可以放入多种数据类型,只能放引用数据类型
		(但我们一般就只使用泛型,让其只放一种类型)
		
集合的应用场景:
	当需要将相同结构的个体整合到一起的时候,就考虑使用集合
	
	
***			Collection
		List          Set
		Collection,List,Set都是接口,
		List扩展了搜索引相关的方法
		List,Set都是继承Collection接口
		
*接口不可以被实例化,可以实现底层实现类

Collection
	*遍历方式
		1.增强for循环
		2.利用迭代器
			Iterator it=new Iterator();
			while(it.hasNext()){
				sysout(it.next());
			}	
		//这个遍历比上面好,在遍历结束时,it也将被释放
			for(Iterator it=new Iterator();it.hasNext();)
					sysout(it.next());
					
			
List
	*遍历方式
		1.增强for循环
		2.利用迭代器
		3.普通for循环
		
ArrayList与Vector的区别和联系:
	联系:都是List接口的实现类,底层都是数组
	区别:ArrayList扩容:1.5倍       	Vector扩容:2倍
		  底层数组扩容数量不一样
		  ArrayList:JDK1.2		效率高  线程不安全
		  Vector:JDK1.0		效率低	线程安全
	数组:  查询快 插入删除效率低
	
LinkedList:底层 双向链表	
	
List接口:元素允许重复,以元素添加的顺序来放置元素,不会重新排列
	ArrayList:数组形式存储,查询快
	LinkList:	链表 插入和删除方便
	
Set接口:元素对象不能重复,其元素添加后不保证与添加的顺序一致
	HashSet   散列表(主数组+链表) 快速定位元素,一般需要重写hashCode()方法 
						唯一无序 查找添加删除效率高
			
	TreeSet		树 升序存储(二叉树中序) 访问检索速度快
	LinkHashSet:有序唯一 按照添加顺序
	
Map接口:用于维护键值对的集合,键对象不允许重复。而一个值对象又可以是一个Map
	HashMap:	散列表  唯一 不保证元素顺序 允许使用空值空键 
	TreeMap:	树		顺序存储键值对 允许快速检索 按照键升序排序 唯一有序
		Map转换为Collection的三个方法:
			1.entrySet():返回一个包含Map中元素的集合,每个元素都包括键和值
			2.keySet():返回键的集合
			3.values():返回值的集合
		
	*LinkHashMap是HashMap的子类,保存了记录的插入顺序,遍历速度只和实际数
		据有关,一般比HashMap速度慢。有序唯一
	
	

	加入泛型作用:
		限制放入集合中元素的类型,将类型限制为同一种类型
		加入泛型,其实就是对编译期间的瞬间生效,在编译期间就不允
		许在添加其它的类型了,泛型在jdk1.5之后出的
		
	泛型的上限:? extends A:只要泛型A或者A的子类都可以传入
	泛型的下线:? super A:只要泛型为A或者A的父类都可以传入
	
	泛型的局限性:
	1.不能被实例化
	2.不能实例化泛型数组
	3.基本类型是不能被对象存储
	4.不能抛出也不能捕获泛型类的异常
	5.不能在静态方法或者静态变量中引用类型参数
		
Iterator接口:为了对Collection进行迭代操作
	
散列表(主数组+链表):散列法优点:基本操作平均时间也保持不变		
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值