集合

集合

一、一张图

在这里插入图片描述

二、三个知识点

1、泛型

2、迭代器

Iterable是java.lang包下的一个接口,实现该接口的类都能作为增强for循环的目标
Iterator是java.util包下的一个接口,用来迭代集合中的元素,ArrayList完成了对该接口的实现,获取的其实是实现类对象
ListIterator是一个接口,这个接口可以支持并发修改,内部提供了add set remove方法,如果对于一个List集合对象要通过使用迭代器做修改(删除、添加、修改)那么请使用ListIterator

三、六个接口

1、Collection

定义
public interface Collection<E>
extends Iterable<E>
存储元素特点

无序,可重复

常用方法
增加元素方法描述
boolean add(E e)向集合中添加一个元素
boolean addAll(Collection c)把集合c的所有元素添加到集合中
删除元素方法
void clear()清空所有元素
boolean remove(Object o)删除集合中的某个对象
boolean removeAll(Collection c)删除某集合与当前集合的交集
boolean retainAll(Collection c)保留某集合与当前集合的交集
查看元素方法描述
boolean contains(Object o)是否包含某个对象
boolean containsAll(Collection c)是否包含某个集合的所有元素
boolean isEmpty()集合是否为空
int size()集合中元素个数
迭代元素
		//增强for循环
		for(Object o : c) {
			System.out.println(o);
		}
		//iterator迭代器1
		Iterator it = c.iterator();
		while(it.hasNext()) {
			System.out.println(it.next());
		}
		//iterator迭代器2
		for(Iterator it1 = c.iterator();it1.hasNext();) {
			System.out.println(it1.next());
		}
注意事项
  • 往集合中添加元素时,会自动进行类型转换
Collection c = new ArrayList();
c.add(1);//Integer in1 = Integer.valueOf(1) Object o = in1;

2、List

定义
public interface List<E>
extends Collection<E>
存储元素特点

有序,可重复

常用方法

相对于Collection,多了对于索引的操作,因为

增加元素方法描述
boolean add(int index,E e)向集合中指定索引添加一个元素
boolean addAll(int index,Collection c)把集合c的所有元素添加到集合指定索引处
boolean add(E e)向集合中添加一个元素
boolean addAll(Collection c)把集合c的所有元素添加到集合中
删除元素方法
void clear()清空所有元素
E remove(int index)删除集合中指定索引处的对象
List subList(int fromIndex, int toIndex)截取集合从fromIndex到toIndex(不包括toIndex)中的对象,返回一个新的List
boolean remove(Object o)删除集合中的某个对象
boolean removeAll(Collection c)删除某集合与当前集合的交集
boolean retainAll(Collection c)保留某集合与当前集合的交集
查看元素方法描述
boolean contains(Object o)是否包含某个对象
boolean containsAll(Collection c)是否包含某个集合的所有元素
boolean isEmpty()集合是否为空
int size()集合中元素个数
E get(int index)返回索引处的对象
int indexOf(Object o)返回某对象在集合中第一次出现的索引
int lastIndexOf(Object o)返回某对象在集合中最后一次出现的索引
修改元素方法描述
E set(int Index,Object o)将集合中index索引处的值用o替换,返回原集合中的对象
迭代元素

Collection中能用的List都能用

		//使用ListIterator迭代器
		ListIterator lt = l.listIterator();
		while(lt.hasNext()) {
			System.out.println(lt.next());
		}
		//逆向迭代
		while(lt.hasPrevious()) {
			System.out.println(lt.previous());
		}
注意事项

3、Set

定义
public interface Set<E>
extends Collection<E>
存储元素特点

无序,唯一

常用方法
增加元素方法描述
boolean add(E e)向集合中添加一个元素
boolean addAll(Collection c)把集合c的所有元素添加到集合中
删除元素方法
void clear()清空所有元素
boolean remove(Object o)删除集合中的某个对象
boolean removeAll(Collection c)删除某集合与当前集合的交集
boolean retainAll(Collection c)保留某集合与当前集合的交集
查看元素方法描述
boolean contains(Object o)是否包含某个对象
boolean containsAll(Collection c)是否包含某个集合的所有元素
boolean isEmpty()集合是否为空
int size()集合中元素个数
迭代元素
注意事项

四、9个常用类

1、ArrayList

底层

数组

优缺点

缺:添加删除慢

优:通过索引获取元素和迭代元素块

常见方法

和List一致

2、LinkedList

底层

双向链表

优缺点

缺:迭代,获取索引元素慢

优:添加删除块

常见方法

相比List多了以下方法,正对头尾

添加元素方法
void addFirst(E e)
void addLast(E e)
boolean offer(E e)
boolean offerFirst(E e)
boolean offerLast(E e)
删除元素方法
E removeFirst()
E removeLast()
E poll()
E pollFirst()
E pollLast()
查看元素方法
E getFirst()
E getFirst()
E element()
E peek()
E peekFirst()
E peekLast()

3、Vector

底层:数组 线程安全 速度慢 安全

4、HashSet

底层

数组+链表

优缺点

添加,修改,删除都很快

常见方法

和Set一致

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值