java map与list的区分
Map(映照)
Map是一种把键对象和值对象映照的鸠合,它的每个元素都包括一个键对象和值对象。 Map主要有以下两个完成类:
HashMap:HashMap基于散列表完成,其插进去和查询<K,V>的开支是牢固的,能够经由过程组织器设置容量和负载因子来调解容器的机能。
LinkedHashMap:类似于HashMap,然则迭代遍历它时,获得<K,V>的递次是其插进去序次,或者是近来起码运用(LRU)的序次。
TreeMap:TreeMap基于红黑树完成。检察<K,V>时,它们会被排序。TreeMap是唯一的带有subMap()要领的Map,subMap()能够返回一个子树。
List(列表)
List的元素以线性体式格局存储,能够寄存反复对象,List主要有以下两个完成类:
ArrayList : 长度可变的数组,能够对元素举行随机的接见,向ArrayList中插进去与删除元素的速度慢。 JDK8 中ArrayList扩容的完成是经由过程grow()要领里运用语句newCapacity = oldCapacity + (oldCapacity >> 1)(即1.5倍扩容)盘算容量,然后挪用Arrays.copyof()要领举行对原数组举行复制。
LinkedList: 采纳链表数据结构,插进去和删除速度快,但接见速度慢。
比较 | List | Map |
---|---|---|
继续接口 | Collection | |
罕见完成类 | AbstractList(其经常使用子类有ArrayList、LinkedList、Vector) | HashMap、HashTable |
罕见要领 | add( )、remove( )、clear( )、get( )、contains( )、size( ) | put( )、get( )、remove( )、clear( )、containsKey( )、containsValue( )、keySet( )、values( )、size( ) |
元素 | 可反复 | 不可反复 |
递次 | 有序 | |
线程平安 | Vector线程平安 | Hashtable线程平安 |
ki4网,大批的免费Java入门教程,迎接在线进修!
以上就是java map与list的区分的细致内容,更多请关注ki4网别的相干文章!