Java Map集合
来源:互联网 发布:apache服务器添加域名 编辑:程序博客网 时间:2024/06/11 21:39
Java Map集合
Map用来保存具有映射关系的数据,即key-value。key和value存在一一对应的关系,即通过key能查出唯一的确定的value值。Map中的key是唯一的不能重复的可以是null但只能有一个null,value值可以重复。
public class Test{public static void main(String[] args){Map map = new HashMap();// map中放入key-value对map.put("aa", 10);map.put("bb", 20);map.put("cc", 30);System.out.println(map);System.out.println("map中是否包含aa的key :&" + map.containsKey("aa"));System.out.println("map中是否包含40的value :" + map.containsValue(40));System.out.println("返回指定key对应的value " + map.get("aa"));System.out.println("判断改map是否为空 :" + map.isEmpty());// 返回该map中所有key组成Set集合Set keySet = map.keySet();for (Object key : keySet){System.out.println(key);}}}
{aa=10, bb=20, cc=30}map中是否包含aa的key :truemap中是否包含40的value :false返回指定key对应的value :10判断改map是否为空 :falseaabbcc
HashMap和Hashtable类
HashMap和Hashtable都是Map接口的典型实现类,它们关系完全类似于ArrayList和Vector的关系。Hashtable是一个线程安全的Map实现,HashMap是线程不安全的,所以HashMap比Hashtable的性能高一点。Hashtable不允许使用null作为key和value,如果试图将null放入Hashtable会报空指针异常,HashMap可以使用null作为key和value。
Hashtable是一个比较古老的类,命名上都没有遵守Java的命名规则,我们的代码中应该尽少使用Hashtable,即使需要线程安全的Map实现,可以通过Collections工具类把HashMap变成线程安全的。
Map m = Collections.synchronizedMap(new HashMap());
LinkedHashMap类
LinkedHashSet是HashMap的子类,它和LinkedHashSet一样使用双向链表维护key-value对的顺序,LinkedHashSet中的元素顺序按插入顺序进行排列。
public class Test{public static void main(String[] args){Map map = new LinkedHashMap();map.put("bb", 10);map.put("cc", 20);map.put("dd", 30);System.out.println(map);}}
{bb=10, cc=20, dd=30}
LinkedHashMap要维护元素插入顺序所以性能略低于HashMap,但是它以链表维护内部顺序,所以迭代访问Map中全部元素有较好的性能
TreeMap类
TreeMap是Map的子接口SortedMap的实现类,TreeMap和TreeSet一样底层也是个红黑树,保证其中元素处于有序状态。TreeMap也有两种排序方式自然排序和定制排序。具体可以参考TreeSet。
TreeMap通常比HashMap和Hashtable要慢,尤其是对元素插入删除的时候,但TreeMap中元素处于有序状态下的所以无需专门进行排序操作。对于一般的场景建议使用HashMap,它专门为快速查询而设计的。
- JAVA集合-Map集合
- java集合------Map集合
- Java集合----Map集合
- java集合------Map集合总结
- Java集合之-Map集合
- Java集合—Map集合
- java集合----------Map
- java笔记 Map集合
- java------集合Map
- java遍历Map集合
- java Map集合练习
- java集合(Map)
- java 遍历map集合
- java之Map集合
- Java 集合(Map)
- java 循环map 集合
- Java-Map集合
- java集合类Map
- 个人所得税问题
- MAC系统mysql怎么修改初始化密码
- 基本数据类型转换
- 你值得拥有:25个Linux性能监控工具
- 前端跨域之CORS
- Java Map集合
- CCNA第二天
- 2017.7.19
- Java日志记录框架Logback配置详解(企业级应用解决方案)
- 查找一个字符串中第一个只出现两次的字符。要求 时o(n) 空o(1)
- 算法导论5.1-2
- 但尽善事,莫问前程。
- leetcode No486. Predict the Winner
- Android,Okhttp and WebSockets