容器
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进行排序,具体取决于使用的方法.