Java集合

2 篇文章 0 订阅

集合【重点】

1. 集合
1.1 数组处理数据问题总结
数组完成了增删改查排序过滤,各式各样功能方法。
问题:
	1. 数组支持的类型单一,有且只能支持一种类型
	2. 如果更换类型,所有相关方法全部再来一变!!!
	3. 数组容量一旦确定,后期无法更改!!!
	数组处理数据非常繁琐!!!
	
集合可以帮我们解决以上问题:
	1. 集合使用泛型来满足各式各样的数据类型,同时在约束之后,可以满足数据类型一致化要求
	2. 集合提供大量的普适性方法。增删改查,排序过滤转换..........
	3. 集合保存数据的容量可以根据当前所需自行调整。
1.2 集合组织架构
interface Collection<E> 
	Java中所有集合的总接口,规定了基本的操作方法,同时约束当前所有的集合都存在泛型约束。
--| interface List<E> extends Collection<E>
	List集合,特征: 有序,可重复
	--| class ArrayList<E> implements List<E>  since V1.1
		底层存储结构为数组,ArrayList是一个可变长数组List集合。特征:增删慢,查询快
	--| class LinkedList<E> implements List<E>
		底层存储结构为【双向链表】结构,特征:增删快,查询慢,并且理论上数据存储数量无限制。
		寒假作业: 完成LinkedList<E>源代码
	--| class Vector<E> implements List<E>  since V1.0
		底层存储结构为数组,也是一个可变长数组List集合,是ArrayList上一代版本,注重【线程安全】,效率低
		
--| interface Set<E> extends Collection<E>
	Set集合,特征: 无序,不可重复
	--| class HashSet<E> implements Set<E> 
		底层是【哈希表】结构 同理 Excel 表格,每一个单元格都有唯一编号。
	--| class TreeSet<E> implements Set<E> 
		底层是【平衡二叉树】结构,后期讲解。
1.3 Collection 涉及到的方法
增:
	boolean add(E e);
		添加当前集合在创建时通过泛型约束的数据类型元素。
	boolean addAll(Collection<? extends E> c);
		添加另一个集合到当前调用方法集合中,要求参数集合中存储元素是E类型或者其子类对象。
删:
	remove(Object obj);
		删除当前集合中的指定元素
	removeAll(Collection<?> c);
		调用方法集合删除与参数集合重叠部分数据
	retainAll(Collection<?> c);
		调用方法集合保留与参数集合重叠部分数据
	clear();
		清空整个集合数据
查:
	int size();
		有效元素个数。
	boolean isEmpty();
		判断当前集合是否为空,如果为空返回true,否则返回false
	boolean contains(Object obj);
		判断指定元素是否在当前集合中存在
	boolean containsAll(Collection<?> c);	
		判断参数集合是否是当前集合子集合
	Object[] toArray();
		返回当前集合中所有元素的Object数组
【补充知识点 泛型的上限】
<? extends E>
    <> 泛型
    ? 通配符
    extends 继承
    E 自定义泛型占位符
   
class Animal
    class Tiger extends Animal
    class Panda extends Animal
    class Lion extends Animal
    E ==> Animal类型
    	<? extends Animal>

<? extends E> 
	要求当前数据类型为E约束对应类型,或者E类型的子类,泛型的上限
1.4 迭代器【非重点】
1.4.1 迭代器图例

在这里插入图片描述

1.4.2 迭代器涉及到的方法
获取方法:
	通过集合对象都可以获取对应当前集合对象迭代器
	Iterator<E> iterator();

操作方法:
	boolean hasNext();
		判断当前迭代器是否可以继续取出元素。
	E next();
		取出当前迭代器指向元素,并且指向下一个元素
	void remove();
		删除元素,有坑
		只能删除通过next获取到的元素,并且需要在执行之前有一个next方法

;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值