详解Java中的Collection集合和List集合

Collection集合和List集合

1. Collection集合
1.1 为什么要使用集合
Java中提供给程序开发使用处理数据结构的一种方式。

数组的局限性太大了!!!
	1. 数组要求数据类型一致化!!!
	2. 数组的容量确定之后无法更改!!!
	3. 数组操作没有太多的配套方法,需要程序员自己完成!!!
	
集合解决的问题:
	1. 可以满足多个数据类型,但是同时又做到了数据类型一致化操作【泛型】
	2. 底层保存数据的容量是可以发生改变的
	3. 有足够多的配套方法,可以满足最基本的增删改查操作 CRUD
1.2 Collection集合
Collection集合,首先是一个接口 是Java中所有集合的总接口!!!
Collection<E>
--| List<E> 特征: 有序,可重复 接口
----| class ArrayList<E> 可变长的数组
----| class LinkedList<E> 底层为双向链表的集合结构
----| class Vector<E> 线程安全的可变长数组,是ArrayList他爹
--| Set<E> 特征: 无序,不可重复 接口
----| class HashSet<E> 底层存储数据的结构是一个哈希表
----| class TreeSet<E> 底层存储数据的结构是一个平衡二叉树结构
1.3 Collection接口下的常用方法
add(E e); 添加集合中指定类型元素的对象保存到集合的末尾。
    addAll(Collection<? extends E> c);
		添加另一个集合到当前集合中,要求另一个集合中的元素要不是当前集合中存
            储元素本身,或者存储元素子类对象
		class Dog extends Animal
		class SingleDog extends Animal
		class PFSP extends Animal
			? extends Animal 泛型的上限
删
	clear(); 清空整个集合
	remove(Object obj); 删除指定元素
	removeAll(Collection<?> c); 删除两个集合的交集
	retainAll(Collection<?> c); 保留两个集合的交集
改	
     none
查
	int size(); 有效元素个数
	boolean isEmpty(); 当前集合是否为空,如果是返回true,不是返回false
	boolean contains(Object obj); 判断当前集合中是否存在指定元素obj
	boolean containsAll(Collection<?> c); 
		判断传入的集合是不是当前集合的子集合
迭代器
	boolean hasNext(); 判断当前迭代器是否可以继续迭代	
	E next(); 获取当前迭代器指向的元素,并且指向下一个元素!!!
    void remove(); 删除
            		【注意】 删除的元素有且只能是通过next获取的元素,并且
            		需要紧挨着next方法
2. List
2.1 List特征和常用方法
List接口特征:
	有序 : 添加顺序和存储顺序一致
	可重复 : 保存元素中允许出现相同元素
List接口是继承Collection接口,也就是说,可以使用Collection接口下的所有方法:
:
	add(E e); 添加符合当前集合要求的元素到集合末尾。
	add(int index, E e); 添加符合当前集合要求的元素,到集合中的指定下标位置
	addAll(Collection<? extends E> c);
		添加另一个集合到当前集合的末尾,要求其中保存的元素是当前集合中元素,
            或者其子类对象
	addAll(int index, Collection<? extends E> c);
		在指定下标位置条件另一个集合元素,求其中保存的元素是当前集合中元素,
            或者其子类对象
删:
	clear(); 删除集合中的所有元素
	remove(Object obj); 删除集合中的指定元素
	removeAll(Collection<?> c); 删除两个集合的交集
	retainAll(Collection<?> c); 保留两个集合的交集
	remove(int index); 删除集合中指定下标的元素
改:
	E set(int index, E e);
		使用指定元素替换指定下标的元素,并且返回被替换元素
查:
	int size();	有效元素个数
	boolean isEmpty(); 判断List集合是否为空
	boolean contains(Object obj); 判断当前集合中是否包含指定元素
	boolean containsAll(Collection<?> c); 判断c是不是当前集合的子集合
	int indexOf(Object obj); 找出指定元素在集合中第一次出现的位置
	int lastIndexOf(Object obj); 找出指定元素在集合中最后一次出现的位置
	List<E> subList(int fromIndex, int toIndex); 
		获取当前集合的子集合,要求从fromIndex下标开始,到toIndex下标结束,
            且要头不要尾
    E get(int index); 获取指定下标的元素
           
	
        
  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值