映射map
来源:互联网 发布:手机卧底软件2017 编辑:程序博客网 时间:2024/05/17 07:01
接口
- java.util.Map<K,V>
- java.util.SortedMap<K,V>
- java.util.NavigableMap<K,V>
- java.util.SortedMap<K,V>
- java.util.Map.Entry<K,V>
注意:Map.Entry<K,V> 这个接口。三个方法getKey() getValue() setValue() hashCode()
Map的方法:keySet() entrySet() values()
put()----putAll() get() containsKey() containsValue()
类架构
- java.lang.Object
- java.util.AbstractMap<K,V> (implements java.util.Map<K,V>)
- java.util.EnumMap<K,V> (implements java.lang.Cloneable, java.io.Serializable)
- java.util.HashMap<K,V> (implements java.lang.Cloneable, java.util.Map<K,V>, java.io.Serializable)
- java.util.LinkedHashMap<K,V> (implements java.util.Map<K,V>)
- java.util.IdentityHashMap<K,V> (implements java.lang.Cloneable, java.util.Map<K,V>, java.io.Serializable)
- java.util.TreeMap<K,V> (implements java.lang.Cloneable, java.util.NavigableMap<K,V>, java.io.Serializable)
- java.util.WeakHashMap<K,V> (implements java.util.Map<K,V>)
- java.util.AbstractMap<K,V> (implements java.util.Map<K,V>)
两个通用的实现:HashMap和TreeMap
区别:TreeMap有顺序:按照键的整体顺序对元素进行排序;HashMap的速度稍快;TreeMap的构造
注意:
对同一个键两次使用Put,第二个值会覆盖第一个值。
三个视图:
keySet() values() entrySet();不能利用keySet来只加键,不加value,如果keySet调用add()方法,将会抛出一个UnsupportedOperationException。
几个特殊的Map
WeakHashMap:解决 如果有一个值对应的键已经不再使用了的情况。
linkedHashSet 记录插入顺序
linkedHashMap:使用访问顺序,来记录:每次调用getset将受影响的条目从当前的位置删除,并放到条目链表的尾部---------“访问顺序”对于实现“最近最少使用”原则十分重要
当限制Map大小时,有一个重要需要覆盖的方法,就是removeEldstEntry()
EnumSet的建立:调用静态工厂方法
EnumMap: EnumMap<WeekDay,EmPloy> personInCharge = new EnumMap<Weekday,Employee>(weekday.class);
集合框架
RandomAccess用来检测一个特定的集合是否支持高效的随机访问。
视图的概念 keySet
包装器
ARRAY类提供了动态创建和访问 Java 数组的方法。 newInstance(Class<?> componentType, int length)
ARRAYS此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。Arrays.asList()
注意:asLIst()方法返回的是一个视图,只能GEtSet不嗯能够改变大小如Remove,Add()
Collections类:
nCopies(n,anObject); 返回一个不可修改的LIst接口对象
singleton(anObject);返回一个Collection接口对象。
singleMap()
子范围
sublist
subSet headSet tailSet()
subMap()
headMap()
tailMap()
不可修改视图
Collections.unmodifiableCollection() unmodifiableSet() unmodifiableList()
同步视图
SynChronizedSet SynChronizedMap SynChronizedList
被检查视图
向LIst<Student>中加入teacher对象时,不会报错,Checked视图就会报错。
批操作
addAll removeAll retainAll()
集合数组之间的转换
1 String values=.......
HashMap<String> staff = new HashMap<String> (Arrays.asList(values));
2 错误:String[] values = staff.toAaary() 返回的是Object[]
正确 : String[] values = staff.toArray(new String[0])或者String[] values = staff.toArray(String.class)
0 0
- 映射map
- Map----映射
- map 映射
- map映射
- map[映射]转
- Hibernate集合映射---Map
- Hibernate Map集合映射
- MAP映射问题
- Hibernate Map映射文件
- 存储器映射 Memory Map
- Map一对多映射!
- VIM键盘映射 (Map)
- POJ2503--Babelfish--map映射
- Hibernate映射Map
- VIM map映射
- hibernate映射map
- hibernate映射map
- Memory Map --- 存储器映射
- 有关Entity Framework的数据模型的操作(二)业务层
- Emacs安装R开发环境ESS
- 031 二进制中1的个数(keep it up, 看到这个题刚开始有点蒙)
- 小知识点.字符串
- git config命令使用第一篇——介绍,基本操作,增删改查
- 映射map
- hdu 2874 Tarjan离线 LCA
- git config命令使用第二篇——section操作,多个key值操作,使用正则
- stm32+ucos,si4438调试
- C#设计一个电子时钟
- 藤田麻衣子 覚悟を決めて。 词汇语法
- java内存泄露
- 为做一个优秀的程序员而努力11.10
- WEB前端mark(1)----两个基本问题的明确