集合核心知识

集合框架:
1张图:
Collection(无序 可重复) Map(存储K-V)
| | | |
List Set HashMap TreeMap
(有序、可重复) (无序 唯一)
/ \ |
ArrayList LinkedList HashSet TreeSet

2:3个知识点
3-1:泛型
泛型就是在创建对象的时候可以确定它的类型
ArrayList ls = new ArrayList<>();

3-2:比较器
A:内部比较器 对象自己比
当前类需要实现 java.lang.Compareable接口 重写compareTo方法
B: 外部比较器 别人帮着比
需要实现java.util.Comparetor接口 重写compare方法

3:6个接口
3-1:Collection
存储特点:无序 可重复
常见方法:
增:add,addAll
删:remove,removeAll,clear,retainAll,
改:
查:size,isEmpty,contains,
迭代方式:
for: 不行
for-each: 可以
iterator: 可以
3-2: List
存储特点:有序 可重复
常见方法: 除了Collection中之外增加了对于索引的操作
增:add(index),addAll(index)
删:remove(index),removeAll(index)
改:set(index,Obj)
查:get(index) subList()
迭代方式:
for: 可以
for-each: 可以
iterator: 可以
3-3: Set
存储特点:无序 不可重复
常见方法:
和Collection一样
迭代方式:
for: 不行
for-each: 可以
iterator: 可以
3-4: Map
存储特点:K-V K 唯一,无序 V 可重复
常见方法:
增加:put(k,v) putAll(Map)
删除:remove(k) remove(k,v)
修改:
查看:entrySet(); values(); keySet(),contains(k)
size() get(k)
迭代方式:
迭代key: keySet()-> Set集合 foreach和迭代器
迭代vlaue values()-> Collection foreach和迭代器
迭代k-v
keySet() -> Set集合 + get(k)
entrySet() -> Set集合 => getKey()+getValue()

9: 9个常用类

9-1:ArrayList
	底层结构:数组
	存储特点:随机获取速度快,但是添加删除效率慢
	常见方法:
			和List一样
	迭代方式:
			for:  可以
			for-each: 可以 
			iterator:  可以
			ListIterator


9-2: LinkedList
底层结构:链表(双向链表)
存储特点:随机获取效率低 添加删除效率高
常见方法:
和List一样 多了一些针对于表头和表尾的操作
get、add、remove
peek、offer、poll
迭代方式:
for: 可以
for-each: 可以
iterator: 可以
ListIterator

9-3: HashSet
	底层结构:哈希表 底层时一个HashMap
	存储特点:什么都很高
	常见方法:
			和Set一样
	迭代方式:
			for:  不可以
			for-each: 可以 
			iterator:  可以
	注意事项:
			如果添加自定义对象的时候需要重写hashcode和equals方法。
		
9-4: TreeSet
	底层结构:红黑树 就是一个TreeMap
	存储特点:比HashSet略低 可以比大小
	常见方法:
			和Set一样 多了一些比较的方法
			ceiling()  floor()   power() heigher() 
	迭代方式:
			for:  不可以
			for-each: 可以 
			iterator:  可以
	注意事项:
			如果添加自定义对象的时候需要保证可以进行比较。
			详细请看比较器
9-5: HashMap
	底层结构:哈希表  所有的操作都是key为主
	存储特点:什么都很高
	常见方法:
			和Map一样
	迭代方式:
			迭代key: keySet()->  Set集合 foreach和迭代器
			迭代vlaue values()->  Collection foreach和迭代器
			迭代k-v 
					keySet() ->  Set集合 + get(k)
					entrySet() ->  Set集合 => getKey()+getValue()
	注意事项:
			如果添加自定义对象作为key的时候需要重写hashcode和equals方法。
			
9-6:TreeMap
	底层结构:红黑树 
	存储特点:比HashMap略低 可以比大小
	常见方法:
			和Map一样 多了一些比较的方法
			XXXEntry() XXXKey() 
			
	迭代方式:
			迭代key: keySet()->  Set集合 foreach和迭代器
			迭代vlaue values()->  Collection foreach和迭代器
			迭代k-v 
					keySet() ->  Set集合 + get(k)
				  entrySet() ->  Set集合 => getKey()+getValue()	
	注意事项:
			如果添加自定义对象作为key的时候需要保证可以进行比较。
			详细请看比较器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值