Java基础——Collection集合类(一)

一、Collection集合接口

在这里插入图片描述

1、介绍
Collection是List和Set集合的父接口。
2、特点:
无序、可以重复,只能存储引用类型
3、获取方法
通过接口变量指向实现类对象
Collection coll = new ArrayList();
4、Collection中常用的方法:
a、add(E e);//可以添加任何类型
b、addAll(Collection coll);//添加一个集合
c、remove(Object obj);//删除一个元素
d、removeAll(Collection coll);//删除一个集合
e、isEmpty();//判断是否为空
f、contains(Object o);//是否包含某个元素
g、containsAll(Collection<?> c);//是否包含一个集合
h、retainAll(Collection<?> c);//取两个集合的交集,返回一个boolean值
i、size();//返回集合的大小
k、clear();//清除所有元素
5、遍历元素的方法

 a、增强for循环
for(String str:coll) {  
System.out.println(str);  
}  
  b、用Itaretor迭代器 
for(Iterator<String> it = coll.iterator(); it.hasNext();) {  
    System.out.println(it.next());  7.	}

二、List集合接口

1、描述
List是ArrayList、LinkedList、vector,其中vector底层也是数组实现的,线程安全,但是速度慢
2、特点:
有序、可以重复,只能存储引用类型
3、获取方法
通过接口变量指向实现类对象
List list = new ArrayList();
4、List中常用的方法:
a、add(E e);//可以添加任何类型
b、addAll(Collection coll);//添加一个集合
c、remove(Object obj);//删除一个元素
d、removeAll(Collection coll);//删除一个集合
e、isEmpty();//判断是否为空
f、contains(Object o);//是否包含某个元素
g、containsAll(Collection<?> c);//是否包含一个集合
h、retainAll(Collection<?> c);//取两个集合的交集,返回一个boolean值
i、size();//返回集合的大小
k、clear();//清除所有元素
特有的
add(int index,E e);//往index中插入一个元素
addAll(int index,Collection<?> coll);//往index中插入一个集合
remove(int index);//移除索引为index的元素
indexOf(Object obj);//获取该元素的索引
lastIndexOf(Object obj);//获取该元素的最后一次出现的索引
get(int Index);//获取index索引对应的值
set(int Index,E element);//修改索引为index的值
subList(int fromIndex, int toIndex);//拆分当前集合,从fromIndex开始,到toIndex,返回一个List集合

2.1、ArrayList

1、描述
ArrayList是List的实现类,底层是用数组实现的,
2、特点:
有序、可以重复,只能存储引用类型,通过索引获取元素以及迭代元素很快,但是增加删除元素很慢
3、获取方法
直接创建对象
ArrayList list = new ArrayList();
指定初始容量
ArrayList list = new ArrayList(int size);
创建一个包含指定集合的对象
ArrayList list = new ArrayList(Collection<? extends> c);
4、ArrayList中常用的方法:
a、add(E e);//可以添加任何类型
b、addAll(Collection coll);//添加一个集合
c、remove(Object obj);//删除一个元素
d、removeAll(Collection coll);//删除一个集合
e、isEmpty();//判断是否为空
f、contains(Object o);//是否包含某个元素
g、containsAll(Collection<?> c);//是否包含一个集合
h、retainAll(Collection<?> c);//取两个集合的交集,返回一个boolean值
i、size();//返回集合的大小
k、clear();//清除所有元素
特有的
add(int index,E e);//往index中插入一个元素
addAll(int index,Collection<?> coll);//往index中插入一个集合
remove(int index);//移除索引为index的元素
indexOf(Object obj);//获取该元素的索引
lastIndexOf(Object obj);//获取该元素的最后一次出现的索引
get(int Index);//获取index索引对应的值
set(int Index,E element);//修改索引为index的值
subList(int fromIndex, int toIndex);//拆分当前集合,从fromIndex开始,到toIndex,返回一个List集合
5、遍历元素的方法
a、普通循环
b、增强for循环
c、用Itaretor迭代器

2.2、LinkedList

1、描述
LinkedList是List的实现类,底层是用链表实现的,
2、特点:
有序、可以重复,只能存储引用类型,通过链表可以使元素的增删快,获取元素会很慢
3、获取方法
直接创建对象
LinkedList list = new LinkedList ();
创建一个包含指定集合的对象
LinkedList list = new LinkedList (Collection<? extends> c);
4、LinkedList中常用的方法:
a、add(E e);//可以添加任何类型
b、addAll(Collection coll);//添加一个集合
c、remove(Object obj);//删除一个元素
d、removeAll(Collection coll);//删除一个集合
e、isEmpty();//判断是否为空
f、contains(Object o);//是否包含某个元素
g、containsAll(Collection<?> c);//是否包含一个集合
h、retainAll(Collection<?> c);//取两个集合的交集,返回一个boolean值
i、size();//返回集合的大小
k、clear();//清除所有元素
特有的
add(int index,E e);//往index中插入一个元素
addAll(int index,Collection<?> coll);//往index中插入一个集合
addFirst(E e);offerFirst(E e); offer(E e);//往列表首位中插入一个元素
addLast(E e);offerLast(E e);//往列表末尾添加一个元素
remove(int index);//移除索引为index的元素
remove();removeFirst();poll();pollFirst();//移除第一个元素
removeLast();pollLast();//移除最后一个元素
indexOf(Object obj);//获取该元素的索引
lastIndexOf(Object obj);//获取该元素的最后一次出现的索引
get(int Index);//获取index索引对应的值
getFirst();
getLast();
set(int Index,E element);//修改索引为index的值
subList(int fromIndex, int toIndex);//拆分当前集合,从fromIndex开始,到toIndex,返回一个List集合
peek();peekFirst();peekLast();//检索元素
pop();弹出堆栈中的元素
push(E e);//把该元素推入堆栈中
5、遍历元素的方法
a、普通循环
b、增强for循环
c、用Itaretor迭代器

三、Set接口

1、描述
Set是HashSet、TreeSet的父接口
2、特点:
无序、唯一,即不重复
3、获取方法
接口指向实现类
Set<> sets = new HashSet();
4、Set中常用的方法:
a、add(E e);//可以添加任何类型
b、addAll(Collection coll);//添加一个集合
c、remove(Object obj);//删除一个元素
d、removeAll(Collection coll);//删除一个集合
e、isEmpty();//判断是否为空
f、contains(Object o);//是否包含某个元素
g、containsAll(Collection<?> c);//是否包含一个集合
h、retainAll(Collection<?> c);//取两个集合的交集,返回一个boolean值
i、size();//返回集合的大小
k、clear();//清除所有元素
l、copyOf(Collection<?> coll);//返回一个不可修改的set
5、遍历元素的方法
a、增强for循环
b、用Itaretor迭代器

3.1、HashSet类

1、描述
HashSet底层是数组加链表实现的、添加删除修改元素都很快
2、特点:
无序、唯一,即不重复
3、获取方法
HashSet hs = new HashSet();
4、HashSet中常用的方法:
a、add(E e);//可以添加任何类型
b、addAll(Collection coll);//添加一个集合
c、remove(Object obj);//删除一个元素
d、removeAll(Collection coll);//删除一个集合
e、isEmpty();//判断是否为空
f、contains(Object o);//是否包含某个元素
g、containsAll(Collection<?> c);//是否包含一个集合
h、retainAll(Collection<?> c);//取两个集合的交集,返回一个boolean值
i、size();//返回集合的大小
k、clear();//清除所有元素
l、copyOf(Collection<?> coll);//返回一个不可修改的set
5、遍历元素的方法
a、增强for循环
b、用Itaretor迭代器
6、注意HashSet存储自定义对象时候要重写hashcode和equals方法

3.2、TreeSet类

底层:树 红黑树/二叉树、平衡树
优缺点:维护数据的大小是有序的,这里的有序与List的有序不同,TreeSet的有序是指,数据存放进去后会按照自然顺序(字典顺序)存放。添加速度和删除元素的速度高于ArrayList,比其他数据存储类型都低,查询速度高于List 低于HashSet。如果对于存储的数据有排序要求,那么首选TreeSet。
常见方法:add、addAll、clear、remove、removeAll、retainAll、size、isEmpty、contains、conatinsAll、iterator
迭代方法:foreach、迭代器
注意事项:如果存储的元素需要按照指定的需求进行排序,创建TreeSet对象时,指定比较器。
如果处在的元素是自定义对象:
1、 要么自定义对象的所属类 实现了内部比较器Comparable接口,重写compareTo方法
2、 要么创建TreeSet对象时指定外部比较器Comparetor接口,重写compare方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值