Collection
2020-11-13 18:09:36 0 举报
AI智能生成
集合知识大盘点(详细梳理collection和hashmap的异同及底层运行原理)
作者其他创作
大纲/内容
Map集合
同一个Map中是不允许出现“重复”的key,value是可以重复的。
API
添加
V put(K key, V value) :添加一对键值对
void putAll(Map<? extends K,? extends V> m) :添加多对键值对
删除
void clear()
V remove(Object key) :根据key删除一对键值对,返回value
修改
需对同一个key,put另外一个value,覆盖原来的value
查询
int size()
V get(Object key) :根据key,找value
boolean containsKey(Object key):判断key是否存在
boolean containsValue(Object value):判断value是否存在
boolean isEmpty():判断是否为空
遍历
Collection<V> values()
Set<K> keySet()
Set<Map.Entry<K,V>> entrySet()
Map的实现类
Hashtable:哈希表
HashMap:哈希表
LinkedHashMap:链表哈希表
TreeMap
问题3:TreeMap有什么特点呢?
Properties
问题4:Properties有什么特点?
ConcurrentHashMap
List集合
概述
继承Collection的所有方法
有序的、可重复的,可以通过下标进行操作
API
添加
继承Collection的方法
boolean add(E e):默认在列表的最后添加
boolean addAll(Collection<? extends E> c):默认在列表的最后添加一组元素
void add(int index, E element) :在[index]位置添加,即插入
boolean addAll(int index, Collection<? extends E> c) 在[index]位置插入一组对象
删除
继承Collection的方法
void clear()
boolean removeAll(Collection<?> c)
boolean retainAll(Collection<?> c)
boolean remove(Object o)
E remove(int index) :删除[index]位置的元素
修改
E set(int index, E element)
查询或获取
继承Collection的方法
int size()
boolean isEmpty()
boolean contains(Object o)
boolean containsAll(Collection<?> c)
E get(int index) :获取[index]位置的元素
int indexOf(Object o) :查找某个对象在当前集合中出现的下标,第一个
int lastIndexOf(Object o) :查找某个对象在当前集合中出现的下标,最后一个
List<E> subList(int fromIndex, int toIndex):截取[fromIndex, toIndex)范围的子集
迭代
继承Collection的方法
Object[] toArray()
Iterator<E> iterator()
foreach,本质还是Iterator<E> iterator()
ListIterator<E> listIterator()
ListIterator<E> listIterator(int index):从任意位置开始遍历
List接口的常用实现类
Stack<E>:栈(Vector的子类)
E push(E item) :把元素压入栈,新增的元素是栈顶元素
E pop() :弹出栈顶元素
E peek() :查看栈顶元素,但是不拿走
int search(Object o),类似于indexOf(Object obj),不同的是它从1基数开始,从栈顶开始数。
Vector<E>:动态数组
ArrayList<E>:动态数组
LinkedList<E>:链表
Set集合
概况
继承Collection的所有方法
一个不包含重复元素的 collection
Set接口的实现类
HashSet
LinkedHashSet
TreeSet
动态数组与LinkedList<E>:链表区别?
重载
list.remove(Integer.valueOf(***));
list.remove(new Integer(***))
list.remove((Integer)***)
ListIterator
API
A:boolean hasNext():是否有下一个元素
B:E next():取出下一个元素
C:boolean hasPrevious():是否有上一个元素
D:E previous():取出前一个元素
E:int nextIndex() :获取下一个元素的下标,但是不去走下一个元素,游标也不往后走
F:int previousIndex()
G:void remove() :在遍历过程中进行删除
H:void add(E e) :在遍历过程中可以添加
I:void set(E e) :在遍历过程中可以修改
B:E next():取出下一个元素
C:boolean hasPrevious():是否有上一个元素
D:E previous():取出前一个元素
E:int nextIndex() :获取下一个元素的下标,但是不去走下一个元素,游标也不往后走
F:int previousIndex()
G:void remove() :在遍历过程中进行删除
H:void add(E e) :在遍历过程中可以添加
I:void set(E e) :在遍历过程中可以修改
问题1:HashMap与Hashtable都是哈希表,有什么区别?
问题2: HashMap和 LinkedHashMap的区别
Set与Map的关系
Collection接口
List接口
Queue接口
Set接口
Deque接口
LinkedList
Vector
ArrayList
Stack
HashSet
LinkedHashSet
TreeSet
SortedSet
Map接口
Hashtable
HashMap
TreeMap
SortedMap
LinkedHashMap
Properties
Iterable接口
Iterator接口
ListIterator接口
自由主题
平级,没有从属关系
动态数组与LinkedList<E>:链表区别?
收藏
收藏
0 条评论
下一页