JAVA List和Map集合类简介(简单整理)

来源:互联网 发布:ipad隐藏软件 编辑:程序博客网 时间:2024/06/15 18:43
讲述重点之前,先简单介绍一下java集合类,
集合类存放于java.util包中。
集合类(Collection)存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。
集合类型主要有3种:set(集)、list(列表)和map(映射)。

该篇博文主要简单介绍一下map和list这两种集合类,首先我们要明确一点,map和list两者本身都是抽象接口,是不可以实例化的,要想实例化就只能实例化他们两者的实现类。
Map:
map的实现类主要有HashMap, TreeMap, HashTable 和 LinkedHashMap.
如果每个类都用一句话来描述,则表述如下:
  • HashMap 使用哈希表(hash table)实现, 在 keys 和/或 values 之中,都是无序的.
  • TreeMap 基于红黑树(red-black tree)数据结构实现, 按 key 排序.
  • LinkedHashMap 保持者插入顺序.
  • Hashtable 与HashMap实现方式一样,但Hashtable属于同步(synchronized)的.
所以如果代码是线程安全的,那么应该使用HashMap,因为Hashtable的同步是有一定量的运行代价的。而现今对于需要同步的Map,使用 ConcurrentHashMap 也比 Hashtable 有更高的效率。
这里着重了解一下HashMap,也是目前用的比较多的,引用一篇讲的很好的博文:HashMap的实现原理
List:
Java的List接口有3个实现类,分别是ArrayList、LinkedList、Vector,他们用于存放多个元素,维护元素的次序,而且允许元素重复。
(有时,其实可以把list与hashMap联系起来了解,list就好比key值为正实数,value类型为list单个元素的类型的这样一个hashMap)
有关List的各实现类比较和介绍,引用讲的比较好的博文:java的List接口的实现类 ArrayList,LinkedList,Vector 的区别

发表此博文仅为记录一下开发中的点点滴滴。






原创粉丝点击