Java泛型数据结构Map和List
来源:互联网 发布:淘宝客app手机能管理嘛 编辑:程序博客网 时间:2024/06/05 20:59
Java泛型
Java中常用的数据结构,Map、List、Set。
以Map<k, v>
和List<T>
来说,Map是以键值对key-value结构存储的集合,List是对象的列表。
Map
Map是一个接口,所以不能直接 new Map。
HashMap是Map的一个实现类,所以可以new HashMap。
常见的用法是:
Map<String, Integer> map = new HashMap<String, Integer>();
常见的Map实现类还有Hashtable。
HashMap
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
Hashtable
public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable
HashMap与Hashtable的比较
- 二者都实现了Map接口、Cloneable、Serializable接口,不同的是Hashtable继承自老旧的Dictionary类,HashMap继承自AbstractMap
- Hashtable是同步的,HashMap是非同步的。也就是说Hashtable是线程安全的,HashMap不是线程安全的。同步和线程安全指的是在多线程同时操作同一个Hashtable的时候,可以保证里面的数据是一致的。而HashMap则需要在在程序中自己来做同步。不过自Java 1.5之后,java提供了同步的HashMap,
java.util.concurrent.ConcurrentHashMap
。 - Hashtable可以使用Iterator和Enumeration来循环, HashMap只能使用Iterator循环
- Hashtable不允许为null的key和value,HashMap允许有一个key为null,允许有多个value为null。 >所以HashMap不能使用get(key)是否为null来判断是否存在某个key,应该使用containsKey(key)来判断。
- HashMap的size始终是2的次方,Hashtable的扩容方式是现有容量乘以2+1。
HashMap和Hashtable的衍生类
HashMap和Hashtable都是无序的,HashMap有一个之类LinkedHashMap,是有序的。
Hashtable最常见的之类是Properties
List
List是一个接口,继承自Collection。
public interface List<E> extends Collection<E>
由于List是个接口,所以不能直接 new List。
ArrayList
ArrayList是List的一个实现类,所以可以new ArrayList。用法如下:
List<String> list = new ArrayList<String>();
ArrayList的定义是这样的:
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable
- ArrayList是无序的;
- ArrayList允许重复;
Set
Set也是一个接口,继承自Collection
public interface Set<E> extends Collection<E>
- Set不允许重复。
- Set是无序的。
阅读理解
0 0
- Java泛型数据结构Map和List
- JAVA 里的数据结构 Set List Map
- Java数据结构 List Map Set Collection Collections
- Java数据结构Collection、Set,List,Map
- Java重要的数据结构Set,List,Map
- Java数据结构之List、Set、Map集合
- java 中 Map 和 List
- 数据结构 list map set
- Java 常用数据结构深入分析(Vector、ArrayList、List、Map)
- Java 常用数据结构深入分析(Vector、ArrayList、List、Map)
- Java 常用数据结构深入分析(Vector、ArrayList、List、Map)
- Java中常见数据结构:list与map -底层如何实现
- Java中常见数据结构:list与map -底层如何实现
- C++存储数据结构List、CArray、Vector和Map使用分析
- 用数据结构的视角来分析list set和map
- java中list,map使用泛型和不使用的区别
- java转换xml、list、map和json
- Java转换xml、list、map和json
- 自定义“三级联动”(截取字符串匹配)
- 关于<resultMap> 设置时存在数据库中不存在的字段名
- 南阳题目113-字符串替换
- C 实现一个跨平台的定时器 论述
- Java中强引用、软引用、弱引用的区别
- Java泛型数据结构Map和List
- Java就业指导
- Python爬虫利器二之Beautiful Soup的用法
- LeetCode--14. Longest Common Prefix
- 安装eclipse插件查看java字节码
- 欢迎使用CSDN-markdown编辑器
- PAT (Advanced Level) Practise 1072 Gas Station (30)
- Python爬取鬼吹灯2(周建龙)(PyV8解析js)
- jsp中引用的jstl 和fmt标签