Collection集合
补充:向下转型,必须满足继承关系,但是类似于容器类型,比如Object[] 转为 String[] ,是不行的,他们没有继承关系。
集合:java中的一种容器,可以用来储存多个数据
- 集合的长度可变; (数组的长度不可变)
- 只能储存引用数据类型。(数组都可以存)
- 集合储存的为对象,而且对象类型可以不一致;()
- 集合不指定泛型,默认将储存的类型提升为Object类型。(推荐加上泛型)
-Collection coll = new ArrayList();
可以存储任意类型的数据
集合按照其储存结构分为:
- 单列集合
java.util.Collection
- 双列集合
java.util.Map
(后面介绍)
这里先介绍Collection
Collection接口,没有索引访问,(但是子接口List是可以用get(index)进行访问的,而Set不行)。
Collection下的体系结构:
- List: 有序(存和取的顺序),有索引
- ArrayList
- LinkedList
- Vactor(与ArrayList在线程安全上不一致)
- Set: 无序(不保证和取的顺序一致),无索引,不允许重复。
- HashSet
- LinkedHashSet
- TreeSet
- HashSet
Collection常用功能(前面的public就省略不写了)
-
boolean add(E e)
:添加到当前集合 -
void clear()
:清空当前集合 -
boolean remove(E e)
:把给定对象在当前集合中删除,只删除第一次出现的元素。当元素不存在则 -
boolean contains(Object obj)
:判断当前集合中是否包含给定的对象 -
boolean isEmpty()
:判断当前集合是否为空 -
int size()
: 返回当前集合中元素的个数 -
Object[] toArray()
:把当前集合的元素,存储到数组中。(重载:可以传入一个数组,结果也会返回一个数组。) -
Itreator iterator()
: 迭代器 -
E set(int index, E e)
: 修改指定位置的值,只能针对于List
补充:Collections的洗牌功能
-
Collections.shuffle(List<?> list)
:打乱顺序 -
Collections.shuffle(List<?> list, Random rnd)
: 打乱顺序,使用指定的规则