javase-----单列集合

一、单列集合总体结构

单列集合
javase-----单列集合_第1张图片

Collection接口中的常用方法:

1.int size()   //返回集合中元素总个数
2.boolean isEmpty()  //判定集合是否为空
3.boolean contains(Object o); //判定是否包含某元素
4.Iterator<E> iterator();  //继承了迭代器接口,用于集合遍历
5. Object[] toArray();    //将集合转化为数组
6. boolean add(E e);     //添加元素
7.boolean remove(Object o);   //移除元素
7. boolean containsAll(Collection<?> c);  //判断集合之间是否有包含关系
8. boolean addAll(Collection<? extends E> c); 
9. boolean removeAll(Collection<?> c);  //移除在集合中的所有属于集合c的元素
10.void clear();   //清除所有元素
10. int hashCode();

迭代器:Collection接口继承了迭代器接口
javase-----单列集合_第2张图片

List类集特性

1.集合内元素可重复。
2.可使用普通for循环遍历。
3.存取一致。

## 集合内元素可重复且存取一致
javase-----单列集合_第3张图片
在这里插入图片描述
使用普通for循环遍历(区别于Set集合)

javase-----单列集合_第4张图片
当然增强for循环和迭代器遍历也是可以的

Set集合类特性

1.集合内元素不可重复
2.不能使用普通for循环遍历
3.无序,存取不一致

对于Set集合的无序和不能使用for循环遍历的含义如下

## 对于无序性

javase-----单列集合_第5张图片
这里我们添加的顺序依次是abdefk
然而打印结果是:
在这里插入图片描述
发现集合中的元素的顺序并非和我们添加的顺序一致

下面我们再添加一个元素:
在这里插入图片描述

结果:
在这里插入图片描述
发现元素插入的位置是在原集合序列中随机插入,但是会发现原来集合中的元素相对位置都没有发生变化。

结论:每次插入一个新的元素时,并不会把集合中所有元素都打乱,其他元素的相对位置保持不变,新插入的元素是随机插入的。所谓的存取不一致只是说最后一个插入的元素不一定是在集合的最后一个位置。

## 不可重复性

对于不可重复性是利用了HashCode()和equal()两个方法协同合作进行控制的

不能被普通的for循环遍历

在这里插入图片描述

但是可以用增强for遍历
javase-----单列集合_第6张图片

也可用迭代器遍历Iterator
javase-----单列集合_第7张图片

二、List实现类介绍

ArrayList
本质上是一个大小可变的数组。
特点是增删慢,查找快。
LinkedList
本质上是链表
特点是增删快,查找慢。

三、Set实现类介绍

HashSet
LinkedHashSet
保证元素的添加顺序(可对比HashSet不同点)
javase-----单列集合_第8张图片
在这里插入图片描述
TreeSet
保证元素的自然顺序(排好序的按字典序排)[注意可能要重写compareTo方法]
javase-----单列集合_第9张图片
在这里插入图片描述

java初学者,若有错误还请批评指教!

你可能感兴趣的:(javaSE)