java集合总结

 

1:Collection集合体系

	Collection(add,remove,contains,size,iterator)

		|--List(有序,可重复 add(index),get(index),set(index),remove(index))
			|--ArrayList
				底层数据结构是数组,查询快,增删慢。
				线程不安全,效率高。
			|--Vector
				底层数据结构是数组,查询快,增删慢。
				线程安全,效率低。
			|--LinkedList
				底层数据结构是链表,查询慢,增删快。
				线程不安全,效率高。
		|--Set(无序,唯一)
			|--HashSet
				底层数据结构是哈希表。
				如何保证元素唯一性呢?
					它依赖两个方法,hashCode()和equals()方法。
					首先根据hashCode()进行比较:
						相同:继续,equals()方法
							如果返回true,不添加
							如果返回false,添加
						不相同:直接添加到集合中。

				|--LinkedHashSet
					底层数据结构是哈希表和链表。
					哈希表保证元素唯一。
					链表保证元素有序。
			|--TreeSet
				底层数据结构是二叉树。
				如何保证元素唯一性呢?
					根据自然排序或比较器返回的最终结果是不是0来确定元素是否重复。
					如果是0,不添加。否则,添加。

					怎么实现排序的呢?
					方式1:让元素本身具备比较性
						实现Comparable接口
					方式2:让集合具备比较性
						实现Comparator接口
	比较接口:
		Comparable:自然排序比较,被元素本身实现。
		Comparator:比较器接口,用于集合实现。
2:Map
	(1)Map(键值对形式,键唯一,它的数据结构是用于保证键的)
		|--HashMap
			底层数据结构是哈希表。
			键唯一?
				跟hashCode()和equals()方法有关。
		|--Hashtable
			底层数据结构是哈希表。
		|--TreeMap
			底层数据结构是二叉树。
			键唯一,排序?
				跟自然排序或者比较器有关。
	(2)Map和Collection的区别?
		Map:键值对形式,键唯一。可以看成是夫妻对。
		Collection:单一元素形式,它的儿子Set的元素是唯一。可以看成是单身汉。

	(3)HashMap和Hashtable区别?
		HashMap:键和值都可以为null,线程不安全。
		Hashtable:键和值都不可以为null,线程安全。

	(4)Collection和Collections的区别?
		Collection:是Collection集合的顶层接口,定义了共性方法。
		Collections:是对Collection集合操作的工具类,比如说:排序,查找。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值