目录
一、集合关系
二、List类
1、ArrayList和LinkedList区别
ArrayList是基于数组的,LinkedList是基于链表的,前者优于查询,后者优于插入,此外,LinkedList可以当做双端队列使用 。
2、Arraylist常用API
-
-
Modifier and Type 方法 描述 void
add(int index, E element)
在此列表中的指定位置插入指定的元素。
boolean
add(E e)
将指定的元素追加到此列表的末尾。
boolean
addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到此列表中,从指定的位置开始。
boolean
addAll(Collection<? extends E> c)
按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾。
void
clear()
从列表中删除所有元素。
Object
clone()
返回此
ArrayList
实例的浅拷贝。boolean
contains(Object o)
如果此列表包含指定的元素,则返回
true
。void
ensureCapacity(int minCapacity)
如果需要,增加此
ArrayList
实例的容量,以确保它至少能够容纳最小容量参数指定的元素数量。void
forEach(Consumer<? super E> action)
对
Iterable
每个元素执行给定的操作,直到所有元素都被处理或动作引发异常。E
get(int index)
返回此列表中指定位置的元素。
int
indexOf(Object o)
返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
boolean
isEmpty()
如果此列表不包含元素,则返回
true
。Iterator<E>
iterator()
以正确的顺序返回该列表中的元素的迭代器。
int
lastIndexOf(Object o)
返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
ListIterator<E>
listIterator()
返回列表中的列表迭代器(按适当的顺序)。
ListIterator<E>
listIterator(int index)
从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。
E
remove(int index)
删除该列表中指定位置的元素。
boolean
remove(Object o)
从列表中删除指定元素的第一个出现(如果存在)。
boolean
removeAll(Collection<?> c)
从此列表中删除指定集合中包含的所有元素。
boolean
removeIf(Predicate<? super E> filter)
删除满足给定谓词的此集合的所有元素。
protected void
removeRange(int fromIndex, int toIndex)
从此列表中删除所有索引为
fromIndex
(包括)和toIndex
之间的元素。void
replaceAll(UnaryOperator<E> operator)
将该列表的每个元素替换为将该运算符应用于该元素的结果。
boolean
retainAll(Collection<?> c)
仅保留此列表中包含在指定集合中的元素。
E
set(int index, E element)
用指定的元素替换此列表中指定位置的元素。
int
size()
返回此列表中的元素数。
void
sort(Comparator<? super E> c)
根据指定的
Comparator
引发的顺序排列此列表。Spliterator<E>
spliterator()
在此列表中的元素上创建late-binding和故障快速
Spliterator
。List<E>
subList(int fromIndex, int toIndex)
返回指定的
fromIndex
(含)和toIndex
之间的列表部分的视图。Object[]
toArray()
以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
<T> T[]
toArray(T[] a)
以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。
void
trimToSize()
修改这个
ArrayList
实例的容量是列表的当前大小。
-
3、LinkedList常用API
-
-
Modifier and Type 方法 描述 void
add(int index, E element)
在此列表中的指定位置插入指定的元素。
boolean
add(E e)
将指定的元素追加到此列表的末尾。
boolean
addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到此列表中,从指定的位置开始。
boolean
addAll(Collection<? extends E> c)
按照指定集合的迭代器返回的顺序将指定集合中的所有元素追加到此列表的末尾。
void
addFirst(E e)
在该列表开头插入指定的元素。
void
addLast(E e)
将指定的元素追加到此列表的末尾。
void
clear()
从列表中删除所有元素。
Object
clone()
返回此
LinkedList
的浅拷贝。boolean
contains(Object o)
如果此列表包含指定的元素,则返回
true
。Iterator<E>
descendingIterator()
以相反的顺序返回此deque中的元素的迭代器。
E
element()
检索但不删除此列表的头(第一个元素)。
E
get(int index)
返回此列表中指定位置的元素。
E
getFirst()
返回此列表中的第一个元素。
E
getLast()
返回此列表中的最后一个元素。
int
indexOf(Object o)
返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
int
lastIndexOf(Object o)
返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
ListIterator<E>
listIterator(int index)
从列表中的指定位置开始,返回此列表中元素的列表迭代器(按适当的顺序)。
boolean
offer(E e)
将指定的元素添加为此列表的尾部(最后一个元素)。
boolean
offerFirst(E e)
在此列表的前面插入指定的元素。
boolean
offerLast(E e)
在该列表的末尾插入指定的元素。
E
peek()
检索但不删除此列表的头(第一个元素)。
E
peekFirst()
检索但不删除此列表的第一个元素,如果此列表为空,则返回
null
。E
peekLast()
检索但不删除此列表的最后一个元素,如果此列表为空,则返回
null
。E
poll()
检索并删除此列表的头(第一个元素)。
E
pollFirst()
检索并删除此列表的第一个元素,如果此列表为空,则返回
null
。E
pollLast()
检索并删除此列表的最后一个元素,如果此列表为空,则返回
null
。E
pop()
从此列表表示的堆栈中弹出一个元素。
void
push(E e)
将元素推送到由此列表表示的堆栈上。
E
remove()
检索并删除此列表的头(第一个元素)。
E
remove(int index)
删除该列表中指定位置的元素。
boolean
remove(Object o)
从列表中删除指定元素的第一个出现(如果存在)。
E
removeFirst()
从此列表中删除并返回第一个元素。
boolean
removeFirstOccurrence(Object o)
删除此列表中指定元素的第一个出现(从头到尾遍历列表时)。
E
removeLast()
从此列表中删除并返回最后一个元素。
boolean
removeLastOccurrence(Object o)
删除此列表中指定元素的最后一次出现(从头到尾遍历列表时)。
E
set(int index, E element)
用指定的元素替换此列表中指定位置的元素。
int
size()
返回此列表中的元素数。
Spliterator<E>
spliterator()
在此列表中的元素上创建late-binding和故障快速
Spliterator
。Object[]
toArray()
以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
<T> T[]
toArray(T[] a)
以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。
-
三、Set类
1、hashset与treeset的区别
简单说,hashset使用哈希表,无序,treeset使用二叉树,有序,但二者都没有索引,二者判断唯一的方式也不一样
ashset:通过判断元素的hashcode方法和equals方法来保证元素的唯一性。当哈希值不同时就直接进行储存。如果相同,会判断一次equals方式是否返回为true ,如果是true 则视为用的同一个元素,不用再储存。 如果是false,这俄格相同哈希值不同内容的元素会放在同一个桶里(当哈希表中有一个桶结构,每一个捅都有一个哈希值)
Treeset:根据比较方法的返回值决定的,只要返回的是0,就代表元素重复。
2、hashset的API
-
-
Modifier and Type 方法 描述 boolean
add(E e)
将指定的元素添加到此集合(如果尚未存在)。
void
clear()
从此集合中删除所有元素。
Object
clone()
返回此
HashSet
实例的浅拷贝:元素本身不被克隆。boolean
contains(Object o)
如果此集合包含指定的元素,则返回
true
。boolean
isEmpty()
如果此集合不包含元素,则返回
true
。Iterator<E>
iterator()
返回此集合中元素的迭代器。
boolean
remove(Object o)
如果存在,则从该集合中删除指定的元素。
int
size()
返回此集合中的元素数(其基数)。
Spliterator<E>
spliterator()
在此集合中的元素上创建late-binding和故障快速
Spliterator
。
-
3、treeset的API
-
-
Modifier and Type 方法 描述 boolean
add(E e)
将指定的元素添加到此集合(如果尚未存在)。
boolean
addAll(Collection<? extends E> c)
将指定集合中的所有元素添加到此集合中。
E
ceiling(E e)
返回此集合中最小元素大于或等于给定元素,如果没有此元素,则
null
。void
clear()
从此集合中删除所有元素。
Object
clone()
返回此
TreeSet
实例的浅层副本。Comparator<? super E>
comparator()
返回用于为了在这个组中的元素,或比较
null
如果这个集使用natural ordering的元素。boolean
contains(Object o)
如果此集合包含指定的元素,则返回
true
。Iterator<E>
descendingIterator()
以降序返回该集合中的元素的迭代器。
NavigableSet<E>
descendingSet()
返回此集合中包含的元素的反向排序视图。
E
first()
返回此集合中当前的第一个(最低)元素。
E
floor(E e)
返回此集中最大的元素小于或等于给定元素,如果没有此元素,则
null
。SortedSet<E>
headSet(E toElement)
返回此集合的部分的视图,其元素严格小于
toElement
。NavigableSet<E>
headSet(E toElement, boolean inclusive)
返回此集合的部分的视图,其元素小于(或等于,如果
inclusive
为真)toElement
。E
higher(E e)
返回这个集合中的最小元素严格大于给定的元素,如果没有这样的元素,则
null
。boolean
isEmpty()
如果此集合不包含元素,则返回
true
。Iterator<E>
iterator()
以升序返回该集合中的元素的迭代器。
E
last()
返回此集合中当前的最后(最高)元素。
E
lower(E e)
返回该集合中最大的元素严格小于给定的元素,如果没有这样的元素,则
null
。E
pollFirst()
检索并删除第一个(最低)元素,如果此集合为空,则返回
null
。E
pollLast()
检索并删除最后一个(最高)元素,如果此集合为空,则返回
null
。boolean
remove(Object o)
如果存在,则从该集合中删除指定的元素。
int
size()
返回此集合中的元素数(其基数)。
Spliterator<E>
spliterator()
在此集合中的元素上创建late-binding和故障快速
Spliterator
。NavigableSet<E>
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
返回此集合的部分的视图,其元素的范围从
fromElement
到toElement
。SortedSet<E>
subSet(E fromElement, E toElement)
返回此集合的部分的视图,其元素的范围从
fromElement
(包括)到toElement
,独占。SortedSet<E>
tailSet(E fromElement)
返回此集合的部分的视图,该部分的元素大于或等于
fromElement
。NavigableSet<E>
tailSet(E fromElement, boolean inclusive)
返回此集合的部分的视图,其元素大于(或等于,如果
inclusive
为true)fromElement
。
-
四、Map类
1、Map类与其他类的区别
Map类为键值对形式,键不可以重复,值可以重复,无序。
2、Hashmap常用API
-
-
Modifier and Type 方法 描述 void
clear()
从这张地图中删除所有的映射。
Object
clone()
返回此
HashMap
实例的浅拷贝:键和值本身不被克隆。V
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
尝试计算指定密钥及其当前映射值的映射(如果没有当前映射,则
null
)。V
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
如果指定的键尚未与值相关联(或映射到
null
),则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非null
。V
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
如果指定的密钥的值存在且非空,则尝试计算给定密钥及其当前映射值的新映射。
boolean
containsKey(Object key)
如果此映射包含指定键的映射,则返回
true
。boolean
containsValue(Object value)
如果此映射将一个或多个键映射到指定的值,则返回
true
。Set<Map.Entry<K,V>>
entrySet()
返回此地图中包含的映射的
Set
视图。void
forEach(BiConsumer<? super K,? super V> action)
对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。
V
get(Object key)
返回指定键映射到的值,如果此映射不包含键的映射,则返回
null
。V
getOrDefault(Object key, V defaultValue)
返回指定键映射到的值,如果此映射不包含该键的映射,则返回
defaultValue
。boolean
isEmpty()
如果此映射不包含键值映射,则返回
true
。Set<K>
keySet()
返回此地图中包含的键的
Set
视图。V
merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
如果指定的键尚未与值相关联或与null相关联,则将其与给定的非空值相关联。
V
put(K key, V value)
将指定的值与此映射中的指定键相关联。
void
putAll(Map<? extends K,? extends V> m)
将指定地图的所有映射复制到此地图。
V
putIfAbsent(K key, V value)
如果指定的键尚未与值相关联(或映射到
null
)将其与给定值相关联并返回null
,否则返回当前值。V
remove(Object key)
从该地图中删除指定键的映射(如果存在)。
boolean
remove(Object key, Object value)
仅当指定的密钥当前映射到指定的值时删除该条目。
V
replace(K key, V value)
只有当目标映射到某个值时,才能替换指定键的条目。
boolean
replace(K key, V oldValue, V newValue)
仅当当前映射到指定的值时,才能替换指定键的条目。
void
replaceAll(BiFunction<? super K,? super V,? extends V> function)
将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都被处理或该函数抛出异常。
int
size()
返回此地图中键值映射的数量。
Collection<V>
values()
返回此地图中包含的值的
Collection
视图。
-