java基础知识---集合的学习

collection:

	|--List:元素有序、可重复的集合,"动态“数组

​		|--ArrayList:作为List接口的主要实现类;线程不安全,效率高。底层使用Object[]存储

						add(),remove(),removeAll(),contains(),
						containsAll(),retainAll(),求交集,,equals(),hashCode(),toArray()将集合转化为数组,Arrays.adList(), 

​		|--LinkedList:底层使用双向链表存储。对于频繁的插入、删除操作,使用此类效率比ArrayList高

​		|--Vector:作为List的古老实现类;线程安全,效率低。底层使用Object[]存储

​	|--Set:元素无序,不可重复的集合

​		|--HsahSet:  是set接口的主要实现类;线程不安全;可以存储null值;底层是一个Object[]和链表

​			|--LinkedHsahSet:HashSet的子类;遍历其内部数据时,可以按照添加的顺序遍历
								优点:对于频繁的便利操作,效率要高于HashSet
​		|--SortedSet:

​			|--TreeSet:可以按照添加对象的指定属性进行排序。(添加数据为同一个类的对象)
						排序:自然排序(实现Comparable接口)、定制排序(Comparator)
						自然排序中,比较两个对象是否相同的标准为:compareTo()返回0,不再是equals()。


Map:双列数据,保存具有映射关系”key-value对“的集合。

​	|--HashMap:作为Map的主要实现类;线程不安全,效率高;存储null的key-value,底层结构是:数组+链表+红黑树
​		|--LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。
​						原因:在原有的HashMap底层结构的基础上,添加了一对指针,指向前一个元素和后一个元素。
						对于频繁的遍历操作,此类指向效率高于HsahMap。
​	|--TreeMap:保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序和定制排序
​	|--Hashtable:作为古老的实现类;线程安全,效率低;不能存储null的key-value
​		|--Properties:常用来处理配置文件,key和value都是String类型

Map结构的理解

	Map中的key:无序的、不可重复的,使用set存储key。--->key所在的类要重写equals()和hashCode()(HsahMap为例)

​	Map中的value:无序的、可重复的,使用Collection存储value。--->value所在类要重写equals()

​	一个键值对:key-value构成一个Entry对象

​	Map中的entry:无序的、不可重复的,使用set存储所有的entry

	无序性:不等于随机性。存储的数据在底层数组中并非按照数组的索引的顺序添加,而是根据数据的哈希值决定

	不可重复性:保证添加的元素按照equals()判断时,不能返回true,即:相同的元素只能添加一个

	Map常用方法:put(),,putAll(),,remove(),,clear(),,get(),,containsKey(),,containsValue(),,size(),,isEmpty(),,equals(),,keySet(),,values(),,entrySet()  
	
	Conllection接口的常用方法:add(Object obj),,addAll(Collection coll),,size(),,isEmpty();,,clear();,,contains(Object obj),,containsAll(Collection coll),,remove(Object obj),,
							removeAll(Collection coll),,retainsAll(Collection coll),,equals(Object obj);hashCode(),,toArray(),,iterator();

Conllections工具类

**常用方法:
		reverse(List):反转List元素的顺序,,
		shuffle(List):对List集合元素进行随机排序,,
		sort(List):根据元素的自然顺序对指定List集合元素安升序排序,,
		sort(List,Comparator):根据指定的Cmparator产生的顺序对List集合元素进行排序,,
		swap(List,int,int):将指定list集合中的i处元素和j处元素进行交换。。
		max(Collection):返回集合中的最大元素,根据自然排序,,
		max(Collection,Comparator):根据指定顺序返回集合中的最大元素,,
		frequency(Collectio,Object):返回集合中指定元素的出现次数,,
		copy(List dest,List src):将src中的集合内容复制到dest中,,
		replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值。

**同步控制:将指定的集合包装成线程同步(线程安全)的集合。
		synchronizedList(List),,synchronizedMap(Map),,synchronizedSet(Set).......

Arrays工具类

	asList(T… a):返回由指定数组支持的固定大小的列表
	
	toString(int[] a):返回指定数组的内容的字符串表示形式
	
	sort(int[] a):按照数字顺序排列指定的数组
	
	binarySearch(Object[] a, Object key):使用二叉搜索算法搜索指定对象的指定数组
	
	copyOfRange(int[] original, int from, int to):将指定数组的指定范围复制到新数组中
	
	fill(Object[] a, Object val):将指定的对象引用分配给指定的对象数组的每个元素
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值