2021-07-14

本文详细介绍了Java集合框架,包括ArrayList、LinkedList、Vector和Set接口如HashSet、TreeSet等。讨论了它们的特点、使用场景及操作方法,如增删查改。此外,还提到了泛型的概念及其优势,并介绍了Collections工具类的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合ArrayList

集合框架
存储多个数据/对象,使用数组
数组:存储相同数据类型一段连续的空间
限制:定长
添加、删除、统计比较麻烦
存储的是单列的值

		学号---学生信息
		订单号--订单详情
		中文名称--英文名称

集合框架:一些接口和类
java.util包
Collection集合 存储单列数据的根接口
表示一组对象
一些 collection 允许有重复的元素,而另一些则不允许。
一些 collection 是有序的,而另一些则是无序的。
JDK 不提供此接口的任何直接 实现
提供更具体的子接口
List 列表 序列
有序(访问顺序和添加顺序一致)
有索引
允许重复
允许null

				使用参考:动态数组
				boolean add(E e)
				void add(int index, E element)
				boolean addAll(Collection<? extends E> c)
				boolean addAll(int index, Collection<? extends E> c)
				E get(int index)
				E remove(int index)
				boolean remove(Object o)
				boolean removeAll(Collection<?> c)
				void clear()
				Iterator<E> iterator()
				ListIterator<E> listIterator()
				boolean contains(Object o)
				int indexOf(Object o)
				boolean isEmpty() 
				Object[] toArray()
				Iterator接口  专门迭代Collection接口
					  boolean hasNext() 如果仍有元素可以迭代,则返回 true。
					  E next() 返回迭代的下一个元素 
					  
				ArrayList  动态数组
					不是线程安全的
					
					特点:底层通过数组来实现
						增加,删除效率低
						随机访问速度快
						内存使用率不高
					使用场景:频繁增删的,不要选它。
				LinkedList
					底层结构:双向链表
						增删相对效率高(首尾元素增删效率高)
						随机访问效率低
						元素散乱分布,内存使用率高
						
					作为List的实现类,ArrayList可以做的事情,LinkedList都可以做
					作为Deque(双端队列)的实现类:
						支持在两端插入和移除元素
						xxxFirst()  xxxLast()
					
					作为队列:  先进先出
						添加--往队尾添
						移除/获取---从队头操作
						offer(e) 往队尾添
						poll() 获取并移除队头
						peek() 获取,但不移除队头
						
					作为栈:先进后出
						栈顶 --头部
						push()压栈 addFist
						pop() 弹栈(获取并移除) removeFirst
						element()获取,但不移除getFirst
						
				Vector  线程安全
					使用方法同ArrayList
					
				Stack 已经被LinkedList替代了
					
			Set 数据集,集合
				不包含重复元素
				最多包含一个 null 元素
				不要求有序
				没有索引
				
				参考:模仿了数学上的 set 抽象
				HashSet
				TreeSet
				
	Map 映射 存储映射关系的接口
		将键映射到值的对象--键值对
		个映射不能包含重复的键;每个键最多只能映射到一个值(key:value  1对1  多对1)
		没有索引
		根据键来操作
		HashMap
	
	Collections 工具类 提供了操作集合的方法
	
泛型:jdk1.5之后新增
	数据类型参数化
	参数字母:E(element)K(key) V(Value) T(Type)
		其实字母可以随意写 A U
	好处:比较灵活,通用性比较好
	注意使用场景:泛型集合类,泛型类,泛型方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值