Map小结
来源:互联网 发布:spin磁共振分析软件 编辑:程序博客网 时间:2024/05/17 19:21
static interface
Map.Entry<K,V>
映射项(键-值对)。
void
clear()
从此映射中移除所有映射关系(可选操作)。
boolean
containsKey(Object key)
如果此映射包含指定键的映射关系,则返回 true。
boolean
containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。
Set<Map.Entry<K,V>>
entrySet()
返回此映射中包含的映射关系的
Set
视图。 boolean
equals(Object o)
比较指定的对象与此映射是否相等。
V
get(Object key)
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回
null
。 int
hashCode()
返回此映射的哈希码值。
boolean
isEmpty()
如果此映射未包含键-值映射关系,则返回 true。
Set<K>
keySet()
返回此映射中包含的键的
Set
视图。 V
put(K key,V value)
将指定的值与此映射中的指定键关联(可选操作)。
void
putAll(Map<? extendsK,? extends V> m)
从指定映射中将所有映射关系复制到此映射中(可选操作)。
V
remove(Object key)
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
int
size()
返回此映射中的键-值映射关系数。
Collection<V>
values()
返回此映射中包含的值的
Collection
视图。
size
int size()
- 返回此映射中的键-值映射关系数。如果该映射包含的元素大于 Integer.MAX_VALUE,则返回 Integer.MAX_VALUE。
- 返回:
- 此映射中的键-值映射关系数
isEmpty
boolean isEmpty()
- 如果此映射未包含键-值映射关系,则返回 true。
- 返回:
- 如果此映射未包含键-值映射关系,则返回 true
containsKey
boolean containsKey(Object key)
- 如果此映射包含指定键的映射关系,则返回 true。更确切地讲,当且仅当此映射包含针对满足 (key==null ? k==null : key.equals(k)) 的键k 的映射关系时,返回 true。(最多只能有一个这样的映射关系)。
- 参数:
key
- 测试是否存在于此映射中的键- 返回:
- 如果此映射包含指定键的映射关系,则返回 true
- 抛出:
ClassCastException
- 如果该键对于此映射是不合适的类型(可选)NullPointerException
- 如果指定键为 null 并且此映射不允许 null 键(可选)
containsValue
boolean containsValue(Object value)
- 如果此映射将一个或多个键映射到指定值,则返回 true。更确切地讲,当且仅当此映射至少包含一个对满足 (value==null ? v==null : value.equals(v)) 的值v 的映射关系时,返回 true。对于大多数 Map 接口的实现而言,此操作需要的时间可能与映射大小呈线性关系。
- 参数:
value
- 测试是否存在于此映射中的值- 返回:
- 如果此映射将一个或多个键映射到指定值,则返回 true
- 抛出:
ClassCastException
- 如果该值对于此映射是不合适的类型(可选)NullPointerException
- 如果指定值为 null 并且此映射不允许 null 值(可选)
get
V get(Object key)
- 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回
null
。更确切地讲,如果此映射包含满足
(key==null ? k==null : key.equals(k))
的键k
到值v
的映射关系,则此方法返回v
;否则返回null
。(最多只能有一个这样的映射关系)。如果此映射允许 null 值,则返回
null
值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到null
。使用containsKey
操作可区分这两种情况。 - 参数:
key
- 要返回其关联值的键- 返回:
- 指定键所映射的值;如果此映射不包含该键的映射关系,则返回
null
- 抛出:
ClassCastException
- 如果该键对于此映射是不合适的类型(可选)NullPointerException
- 如果指定键为 null 并且此映射不允许 null 键(可选)
put
V put(K key, V value)
- 将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当
m.containsKey(k)
返回 true 时,才能说映射 m 包含键 k 的映射关系)。 - 参数:
key
- 与指定值关联的键value
- 与指定键关联的值- 返回:
- 以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联)。
- 抛出:
UnsupportedOperationException
- 如果此映射不支持put 操作ClassCastException
- 如果指定键或值的类不允许将其存储在此映射中NullPointerException
- 如果指定键或值为 null,并且此映射不允许 null 键或值IllegalArgumentException
- 如果指定键或值的某些属性不允许将其存储在此映射中
remove
V remove(Object key)
- 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更确切地讲,如果此映射包含从满足
(key==null ? k==null :key.equals(k))
的键k 到值 v 的映射关系,则移除该映射关系。(该映射最多只能包含一个这样的映射关系。)返回此映射中以前关联该键的值,如果此映射不包含该键的映射关系,则返回 null。
如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到null。
调用返回后,此映射将不再包含指定键的映射关系。
- 参数:
key
- 从映射中移除其映射关系的键- 返回:
- 以前与 key 关联的值;如果没有 key 的映射关系,则返回 null。
- 抛出:
UnsupportedOperationException
- 如果此映射不支持remove 操作ClassCastException
- 如果该键对于此映射是不合适的类型(可选)NullPointerException
- 如果指定键为 null 并且此映射不允许 null 键(可选)
putAll
void putAll(Map<? extends K,? extends V> m)
- 从指定映射中将所有映射关系复制到此映射中(可选操作)。对于指定映射中的每个键 k 到值 v 的映射关系,此调用等效于对此映射调用一次
put(k, v)
。如果正在进行此操作的同时修改了指定的映射,则此操作的行为是不确定的。 - 参数:
m
- 要存储在此映射中的映射关系- 抛出:
UnsupportedOperationException
- 如果此映射不支持putAll 操作ClassCastException
- 如果指定映射中的键或值的类不允许将其存储在此映射中NullPointerException
- 如果指定映射为 null,或者此映射不允许 null 键或值,并且指定的映射包含 null 键或值IllegalArgumentException
- 如果指定映射中的键或值的某些属性不允许将其存储在此映射中
clear
void clear()
- 从此映射中移除所有映射关系(可选操作)。此调用返回后,该映射将为空。
- 抛出:
UnsupportedOperationException
- 如果此映射不支持clear 操作
keySet
Set<K> keySet()
- 返回此映射中包含的键的
Set
视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的remove 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 - 返回:
- 此映射中包含的键的 set 视图
values
Collection<V> values()
- 返回此映射中包含的值的
Collection
视图。该 collection 受映射支持,所以对映射的更改可在此 collection 中反映出来,反之亦然。如果对该 collection 进行迭代的同时修改了映射(通过迭代器自己的remove 操作除外),则迭代结果是不确定的。collection 支持元素移除,通过 Iterator.remove、Collection.remove、removeAll、retainAll 和clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 - 返回:
- 此映射中包含的值的 collection 视图
entrySet
Set<Map.Entry<K,V>> entrySet()
- 返回此映射中包含的映射关系的
Set
视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的remove 操作,或者通过对迭代器返回的映射项执行 setValue 操作除外),则迭代结果是不确定的。set 支持元素移除,通过Iterator.remove、Set.remove、removeAll、retainAll 和clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 - 返回:
- 此映射中包含的映射关系的 set 视图
equals
boolean equals(Object o)
- 比较指定的对象与此映射是否相等。如果给定的对象也是一个映射,并且这两个映射表示相同的映射关系,则返回 true。更确切地讲,如果m1.entrySet().equals(m2.entrySet()),则两个映射 m1 和 m2 表示相同的映射关系。这可以确保equals 方法在不同的 Map 接口实现间运行正常。
- 覆盖:
- 类
Object
中的equals
- 参数:
o
- 要与此映射进行相等性比较的对象- 返回:
- 如果指定的对象等于此映射,则返回 true
- 另请参见:
Object.hashCode()
,Hashtable
hashCode
int hashCode()
- 返回此映射的哈希码值。映射的哈希码定义为此映射 entrySet() 视图中每个项的哈希码之和。这确保 m1.equals(m2) 对于任意两个映射m1 和 m2 而言,都意味着 m1.hashCode()==m2.hashCode(),正如
Object.hashCode()
常规协定的要求。 - 覆盖:
- 类
Object
中的hashCode
- 返回:
此映射的哈希码值
- 另请参见:
Map.Entry.hashCode()
,Object.equals(Object)
,equals(Object)
具体实例:
/*每个学生都有对应的归属地;学生是student,归属地是String学生的属性:姓名和年龄保证学生的唯一性1.描述学生2.定义map容器,将学生作为键,地址作为值存入3.获取map集合元素*/import java.util.*;class maptest {public static void main(String[] args) {Map<student,String> map = new HashMap<student,String>();//定义map容器,将学生作为键,地址作为值存入map.put(new student("a1",24),"xian");map.put(new student("a2",26),"beijing");map.put(new student("a1",24),"beijing");map.put(new student("a1",24),"xian");//第一种取出方法Set<student> keyset = map.keySet();for(Iterator<student> it = keyset.iterator();it.hasNext();){student student = it.next();String address = map.get(student);sop(student+","+address);}//第二种取出方式Set<Map.Entry<student,String>> entryset = map.entrySet();for(Iterator<Map.Entry<student,String>> iter = entryset.iterator();iter.hasNext();){Map.Entry<student,String> stu = iter.next();student student1 = stu.getKey();String address = stu.getValue();sop(student1+","+address);}}public static void sop(Object obj){System.out.println(obj);}}class student implements Comparable<student>//描述学生,可能存入二叉树,接入Comparable接口判断顺序{private String name;private int age;student(String name,int age){this.name = name;this.age = age;}public int compareTo(student s)//按姓名排序判断{int num = new Integer(this.age).compareTo(new Integer(s.age));if(num==0)return this.name.compareTo(s.name);return num;}public int hashCode()//有可能存到HashSet集合里,需要复写hasCode方法{return name.hashCode()+age*3;}public boolean equal(Object obj){if(!(obj instanceof student))throw new ClassCastException("不是学生");//不是学生,抛出异常student s = (student)obj;return this.name.equals(s.name)&&this.age==s.age;}public String getName(){return name;}public int getAge(){return age;}public String toString(){return name+","+age;}}
- 返回:
1 0
- Map小结
- Map小结
- map小结
- map小结
- Map小结
- map插入对象小结
- STL map 插入小结
- Map,set,list小结
- map插入对象小结
- baidu map API 小结
- STL map 插入小结
- stl::map使用小结
- STL-map小结
- MAP遍历与小结
- 数组 Map 使用小结
- set,map 容器特性小结
- STL之Map使用小结
- 黑马程序员 Map 集合小结
- 3dmax对齐命令
- pat 1014 Waiting in Line (30)
- java怎么还是那么渣O(∩_∩)O哈哈~父类与子类关系怎么那么复杂
- linux------进程通信总结
- STC15F2K60S2的脉冲捕获应用
- Map小结
- 数据库设计的步骤
- 关于在servlet中实现页面跳转的两种方式
- 为什么设计模式java实现的书比较多,C++却很少.
- iOS开发中两个界面之间用Block传值
- 图解TCP-IP协议
- CentOS ffmpeg编译,出不来ffplay的原因
- nyoj-25
- Kubernetes用户指南(四)--应用检查和调试