容器

1.Java 所提供的一系列类的实例,用于在程序中存放对象;容器的api位于java.util包内;

Collection

Set(数据对象没有顺序且不可以重复)

HashSet

List(数据对象有顺序可重复)

LinkedList

ArrayList

Map

HashMap

 

2.方法:

size();长度

contains(Object element);是不是包含;

add();添加

remove();去除;

conrainsAll();是不是全部包含

retainAll

 

集合

--collection 集合中(接口--协议) Iterator 迭代器 遍历集合

存储的是元素 是以个为单位

List(保证顺序,元素可重复)

--Vector

--ArrayList

set(集,模拟的就是数学中的集合),不保证顺序,元素不重复

queue队列

--map(接口--协议) 集合中

存储的是键值对

HashMap

 

TreeMap

--Comparable

--Comparater 这两个是用来比较的接口

-----------------------------------------------------------------------------------------------------------------

--Vector类(底层是Object[]数组,根据里氏代换原则该容器什么都可以放)--并且是有顺序的

--capacity()可查看容量大小

--add(Object e)想容器中添加元素

--addElement(Object e)向容器中添加元素

--get(index)根据下标获取元素--并且返回的是一个Object类型

--set(index, element)修改某个下标的某个元素

--remove(index)根据下标删除某个元素

 

-------------------------------------------------------------------------------------------------------------------

--类型转换

--向上转型,从右边往左边看是向上转型,jvm自动转换

--向下转型:强制类型转换,向下转型.

 

------------------------------------------------------------------------------------------------------------------

--ArrayList类-----插入/删除元素效率低

--size() 返回list中的元素个数

--add() 在list的末尾添加元素

--get() 通过下标来查询一个元素

--remove() 删除某个元素,参数可以是下标也可以是元素名

--set(index, element) 修改某个元素.

--indexOf() 从列表中寻找一个元素,如果能找到返回1 如果找不到的话返回-1

--lastIndexOf() 从后往前找

--add(index, element) 按照索引值插入一个元素

--clear() 清空list中的所有内容

--contains("123")查询list中是否包含123字符串,返回结果是一个boolean类型

--toArray()将list转换成一个数组

--addAll() 将另一个list全部添加到另一list中

--addAll(index, list) 将另一个list全部插入到另一个list中

 

------------------------------------------------------------------------------------------------------------------

--list集合的遍历

--普通for循环遍历集合

for(int i=0; i<list.size(); i++)

--增强for循环

for(String s:list2)

--用迭代器遍历

--hasNext()------查看是否还有元素可以迭代,有则返回true

--next()--------返回迭代的下一个元素

--remove()-------从迭代器指向collection中溢出迭代器返回的最后一个元素

 

Iterator<String> it = list.iterator();

while(it.hasNext){

String s = it.next();

syso(s);

}

 

------------------------------------------------------------------------------------------------------------------

--linkedList---------遍历速度比较慢

--addFirst() 将制定元素插入到列表的开头

--addLast() 将指定元素插入到列表的结尾

--offerFirst() 将指定元素添加到列表的第一个

--offerLast() 将指定元素添加到列表的最后一个

--getFirst() 返回此列表的第一个元素

--getLast() 返回此列表的最后一个元素

--size() 返回list中的元素个数

--add() 在list的末尾添加元素

--get() 通过下标来查询一个元素

--remove() 删除某个元素,参数可以是下标也可以是元素名

--set(index, element) 修改某个元素.

--indexOf() 从列表中寻找一个元素,如果能找到返回1 如果找不到的话返回-1

--lastIndexOf() 从后往前找

--add(index, element) 按照索引值插入一个元素

--clear() 清空list中的所有内容

--contains("123")查询list中是否包含123字符串,返回结果是一个boolean类型

--toArray()将list转换成一个数组

--addAll() 将另一个list全部添加到另一list中

--addAll(index, list) 将另一个list全部插入到另一个list中

--peekFirst() 查看第一个元素并且不删除

--pollFirst() 查看第一个元素之后删除该元素

 

-----------------------------------------------------------------------------------------------------------------

--Stack栈(堆栈)----父类是Vector---该类表示后进先出,

--push() 压栈

--peek() 查看元素

--pop() 溢出栈顶的对象,并作为函数的值返回对象

--empty() 测试堆栈是否为空

--search() 返回对象在堆栈中的位置以 1 位基数

 

Stack<E> bulletBox = new Stack();

bulletBox.push("元素一")

 

Iterator it = bulletBox.iterator();

while(it.hasNext){

syso(bulletBox.pop());

}

 

----------------------------------------------------------------------------------------------------------------

--ArrayBlockingQueue 队列---先进先出---一个典型的有界缓存区,固定大小的数组在其中保持生产者插入的元素和使用这提取的元素,一旦创建了这样的缓存区,就不能再增加其容量,试图向已满的队列中放入元素会导致操作受到阻塞,试图从空队列中提取元素将导致类似的阻塞.

--构造方法需要指定队列的大小 new ArrayBlockingQueue<>(6);

--add()添加一个元素,当队列已满,该方法会抛出异常,通过异常来导致添加失败

--offer() 添加一个元素,当队列已满,该方法会返回一个特殊值(true/false),不会抛出异常.

.....

 

----------------------------------------------------------------------------------------------------------------

--HashMap<K, V>--键值对,一个映射不能包含重复的键,每个键最多只能有一个值,无序,底层是

数组,键值对中键比较重要,值算是附属,map中的排序是根据key的hashcode值来排序,

--put(" key","value ") 增加一个键值对

--get(key) 返回指定键的值

--clear() 清空所有键值对

--entrySet() 返回map中包含映射关系的Set视图

--Set<Entry<K, V>> set = map.entrySet();

--getKey() 返回对应的键

--getValue() 返回对应的值

--hashCode() 返回此映射哈希码

--setValue() 用指定的值替换对应的值

--containsKey(key) 判断是否包含某个键

--containsValue(vaule) 判断是够包含某个值

--isEmpty() 判断map 是否为空

--remove(key) 根据键删除一对数据----返回值的内容

--size() 返回map中有多少对

--keySet() 获取map中所有的键

--Values() 获取map中所有的值

--map本身不能使用迭代器

Set<String> keyis = map.keySet();

keyis.iterator()

 

-------------------------------------------------------------------------------------------------------------

--TreeMap<>---该集合中的排序是根据key来排序--跟据键的自然排序---或者根据创建映射时

提供的comparator来进行排序.---一个要是实现Compara接口便可以调用compareTo排序

--put(" key","value ") 增加一个键值对

--get(key) 返回指定键的值

--clear() 清空所有键值对

--entrySet() 返回map中包含映射关系的Set视图

--Set<Entry<K, V>> set = map.entrySet();

--getKey() 返回对应的键

--getValue() 返回对应的值

--hashCode() 返回此映射哈希码

--setValue() 用指定的值替换对应的值

--containsKey(key) 判断是否包含某个键

--containsValue(vaule) 判断是够包含某个值

--isEmpty() 判断map 是否为空

--remove(key) 根据键删除一对数据----返回值的内容

--size() 返回map中有多少对

--keySet() 获取map中所有的键

--Values() 获取map中所有的值

--map本身不能使用迭代器

Set<String> keyis = map.keySet();

keyis.iterator()

 

-------------------------------------------------------------------------------------------------------------------

--HashSet--底层是HashMap------一个不包含重复元素的collection,

--add() 添加一个元素

--底层使用put()将添加的元素作为map的key,value为PRESENT常量

......

 

-----------------------------------------------------------------------------------------------------------------

--TreeSet--底层是TreeMap--使用元素的自然顺序对元素进行排序,或者根据创建SET时提供的comparator进行排序,具体取决于使用的方法.