容器

来源:互联网 发布:为什么4g网络特别慢 编辑:程序博客网 时间:2024/06/06 03:01

一、为什么需要容器
1. 数组存在两个缺陷:

①数组的长度难以扩充②数组中元素类型必须相同

2. 容器可以弥补数组的两个缺陷
3. 举例:

①假设A是类名A[] arr = new A[10];②表示分配了一个数组,数组的每个元素都是A类对象的一个引用,但是如果想扩充数组的长度,比如希望数组的长度变成15,我们是不能直接在原数组内存的后面追加内存,必须得另外分配长度为15的内存空间,然后利用System.arraycopy()方法将原来数组中的内容拷贝到新内存中。③所以一旦数组内存已分配,你想改变数组的长度,效率会变得很低。

4. 容器与现实的对应关系
这里写图片描述
5. 这里写图片描述
6. 这里写图片描述

二、Collection接口中的方法介绍
1. int size(): 返回次collection中的元素数
2. boolean isEmpty();
3. boolean containesAll(Collection c);

 判断形参c所指向的集合中所有的元素是不是已经全部包含在了当前集合中,是,返回true,否则返回false。

4. Iterator iterator();返回能够遍历当前集合所有元素的迭代器
5. Object[] toArray()

①容器不是数组,不能通过下边的方式访问容器中的元素②返回一个包含此collection中所有元素的数组

6. boolean add(Object e); 把e添加到当前集合中
7. boolean remove(Object o);
8. boolean addAll(Collection c);把c所有的元素添加到当前集合中
9. boolean removeAll(collection c);
10. void clean(); 把当前容器中的所有元素清除
11. boolean equals(Object o);
12. int hashCode();

三、collection接口的子接口—-List接口
这里写图片描述

四、Collection接口的子接口—-Set接口
1. 因为Set和List都是继承自Collection接口,所以方法时一样的。
2. List接口中有add,set,indexOf方法,但是Set接口中只有add方法,因为Set是无序不能重复的,不存在某元素具体位置这个概念。

五、Map接口
1. java.util.Map接口描述了映射结构,Map结构允许以键集、值集合或键-值映射关系的形式查看某个映射的内容。
2. 主要方法:

Object put(Object key, Object value)
Object get(Object key):
注意Map接口中并没有Object get(Object value)
boolean isEmpty()
void clean()
int size()
boolean containsKey(Object key)
boolean containsValue(Object value)

0 0