集合类
单例集合Collection
List
有存储顺序,可重复
-
特点:有存储顺序,可以重复
-
ArrayList
- 特点:底层维护的数组,查询快增删慢
-
LinkedList
- 特点:底层维护的是链表,增删快查询慢
-
Vector
- 特点:和ArrayList相同但是线程安全,效率略低
Set
- 特点:无存储顺序,不可重复
- HashSet
- TreeSet
- LinkedHashSet
Collection接口共有的方法
-
增
- add( ) 将指定的对象存储到容器 参数类型是object便于接收任意对象
- addAll() 将指定集合中的元素添加到调用该方法的集合中
-
删
- remove()将指定的对象从集合中删除
- removeAll()将指定集合中的元素从该集合中删除
-
改
- 清空集合中的所有元素 clear()
-
查
- 获取容器的大小 int size()
- 判断集合是不是为空 isEmpty()
- 判断集合是否包含某个元素 contains()
- 判断集合是否包含指定集合 containsAll()
-
转换成数组 toArray()
List集合特有的方法
-
增
- void add(int index,E element) 指定位置添加元素
- boolean addAll(int index,Collection c)指定位置添加集合
-
删
- remove(int index) 删除指定位置的元素返回的是删除的元素
-
改
- set(int index,E element) 返回的是需要替换的集合中的元素
-
查
- get(int index) 得到该位置的元素
-
求子集合 List subList(int fromIndex,int toIndex)
-
LinkedList集合特有的方法
-
增
- addFirst(Object obj) 添加头
- addLast(Object obj) 添加尾
-
删
- removeFirst()删除头
- removeLast()删除尾
-
改
-
查
- getFirst() 获得头
- getLast() 获得尾
-
数据结构
-
1:栈 (1.6)先进后出
- push() pop()
-
2:队列(双端队列1.5)先进先出
- offer()poll()
-
-
迭代器
Iterator iterator() 返回该集合的迭代器对象
Itreator 该接口是集合的迭代器接口类,定义了常见的迭代方法
- 1:boolean hasNext() 判断集合中是否有元素,如果有元素可以迭代,就返回true。
- 2: E next() 返回迭代的下一个元素,注意: 如果没有下一个元素时,调用next元素会抛出NoSuchElementException
- 3: void remove() 从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)
List特有的迭代器ListIterator
-
特有的方法
- add() 将指定的元素插入列表(可选操作)。该元素直接插入到 next 返回的下一个元素的前面(如果有)
- void set(E o) 用指定元素替换 next 或 previous 返回的最后一个元素
- hasPrevious() 逆向遍历列表,列表迭代器有多个元素,则返回 true。
- previous() 返回列表中的前一个元素。
Set 不可以有重复元素的集合
- HashSet 线程不安全,存取速度快。底层是以hash表实现的。
- TreeSet 红-黑树的数据结构,默认对元素进行自然排序(String)。如果在比较的时候两个对象返回值为0,那么元素重复
双列集合Map
Map中的元素是两个对象,一个对象作为键,一个对象作为值。键不可以重复,但是值可以重复
HashSet采用哈希表实现 无序
HashMap 可以对键进行排序
HashTable 底层是哈希表数据结构,线程是不同步的可以存入null键null值
- LinkedHashMap 基于哈希表 又融入了链表 对Map集合进行增删提高效率
TreeMap
- 底层是二叉树数据结构 可以对map集合中的键值进行排序
通用方法
-
增
- put(K,V)可以是相同的k但是会覆盖前面的k对应value的值
- putAll(map)
-
删
- remove()删除关联对象 指定的key
- clear()清空集合对象
-
获取
- value get(key); 可以用于判断键是否存在的情况。当指定的键不存在的时候,返
- 回的是null。
-
查
- 长度 size()
- 是否为空 isEmpty()
- 是否包含指定的key containsKey()
- 是否包含指定的value containsValue()
-
map的遍历
-
1.将map集合中所有的键取出存入set集合
- set keySet 返回所有的key对象的Set集合 再通过get的方法获取键对应的值
-
2.values() 获取所有的值
- Collection values 不能获得key对象
-
Map.Entry 对象
- Set<Map.Entry<k,v>> entrySet() 将map 集合中的键值映射关系打包成一个对象 Map.Entry对象通过Map.Entry 对象的getKey, getValue获取其键和值。
-