本文目录
- java教程之Map应该怎么用
- Java中Map.containsKey的问题
- javamap的用法
- java怎样判断map里包含某个字符串
- Java的map的containsKey方法是如何实现的不是也要遍历map里面的key才能知道是否包含吗
- Map的containsKey()方法是做什么用的
- Java 中map集合 判断key值是否相等 如果key值相等就将对应的value值加1 坐等!
java教程之Map应该怎么用
Map集合:确保唯一性依赖于hashCode()和equals方法HashSet底层依赖于HashMap,TreeSet底层依赖于TreeMapMap集合石双列的,Collection是单列的Map的键唯一,Collection的子体系Set是唯一的Map集合的数据结构值针对键有效,跟值无关,Collection集合的数据结构是针对元素有效添加:V put(K key,V value);如果键是第一次储存就直接存,返回null,如果不是,就用值把以前覆盖并返回旧值删除:void clear();清空V remove(Object key);根据键删除键值对元素,返回值判断:boolean containsKey(0bject key) 判断集合是否包含指定的键boolean containsValue(Object value)判断集合是否包含指定的值boolean isEmpty() 判断集合是否为空获取:V get(Object key) 根据键获取值Set《K》 keySet() 获取集合中所有键的集合Collection《V》 values() 获取集合中所有值的集合长度:int size() 返回集合中的键值对数遍历:1.Set《》 keySet = hm.keySet();hm.get(key);2.Set《Map.Entry《,》》 = hm.entrySet();Map.Entry《,》.getKey()Map.Entry《,》.getValue()TreeMap对键进行比较
Java中Map.containsKey的问题
如果你用hashmap的话你应该覆盖hashCode方法,而不是equals方法,hashMap containsKey方法用的不是equals比较而是hashcode比较。如果你用treeMap那就实现Comparable接口,treeMap用compareTo实现containsKey的比较。不同的Map实现有不同的判断方式,所以,一般不建议用自己写的类作为key值,起码我是这么要求的
javamap的用法
javamap的用法如下;
1、void clear():删除Map中所有键值对。2、boolean containsKey(Object key):查询Map中是否包含指定key,如果包含则返回true。3、boolean containsValue(Object value):查询Map中是否包含指定value,如果包含则返回true。
4、Set entrySet():返回Map中所包含的键值对所组成的Set集合,每个集合元素都是Map.Entry对象(Entry是Map的内部类)。5、Object get(Object key):返回指定key所对应的value,如Map中不包含key则返回null。6、boolean isEmpty():查询Map是否为空,如果空则返回true。7、Set keySet():返回该Map中所有key所组成的set集合。8、Object put(Object key,Object value):添加一个键值对,如果已有一个相同的key值则新的键值对覆盖旧的键值对。
9、void putAll(Map m):将指定Map中的键值对复制到Map中。10、Object remove(Object key):删除指定key所对应的键值对,返回可以所关联的value,如果key不存在,返回null。11、int size():返回该Map里的键值对的个数。12、Collection values():返回该Map里所有value组成的Collection。Map中包含一个内部类:Entry。该类封装了一个键值对,它包含了三个方法:1、Object getKey():返回该Entry里包含的key值。2、Object getValeu():返回该Entry里包含的value值。3、Object setValue(V value):设置该Entry里包含的value值,并返回新设置的value值。
java怎样判断map里包含某个字符串
如果Map集合中包含指定的键值对象,则返回true,否则返回false。Map集合允许值对象为null,并且没有个数限制,所以当get方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get方法来判断是否存在某个键,而应该利用containsKey方法来判断。该方法判断Map集合对象中是否包含指定的键名。
Java的map的containsKey方法是如何实现的不是也要遍历map里面的key才能知道是否包含吗
containsKey 判断map中有没有包含这个key值, 它的实现方式请查看以下源码:/** * Implements Map.get and related methods * * @param hash hash for key * @param key the key * @return the node, or null if none */ final Node《K,V》 getNode(int hash, Object key) { Node《K,V》 tab; Node《K,V》 first, e; int n; K k; if ((tab = table) != null && (n = tab.length) 》 0 && (first = tab) != null) { if (first.hash == hash && // always check first node ((k = first.key) == key || (key != null && key.equals(k)))) return first; if ((e = first.next) != null) { if (first instanceof TreeNode) return ((TreeNode《K,V》)first).getTreeNode(hash, key); do { if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k)))) return e; } while ((e = e.next) != null); } } return null; }
Map的containsKey()方法是做什么用的
直接上API containsKeyboolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。更正式地说,当且仅当此映射包含键 k 的以下映射关系时才返回 true:(key==null ? k==null : key.equals(k))。(最多只能有一个这样的映射关系)。 参数:key - 测试在此映射中是否存在的键。 返回:如果此映射包含指定键的映射关系,则返回 true。 抛出:ClassCastException - 如果该键对于此映射是不合适的类型(可选)。 NullPointerException - 如果该键为 null 并且此映射不允许 null 键(可选)。
Java 中map集合 判断key值是否相等 如果key值相等就将对应的value值加1 坐等!
public static void main(String args) { Map《String, List《String》》 input = new HashMap《String, List《String》》(); List《String》 list = new ArrayList《String》(); list.add("《狂人日记》"); list.add("《狂人日记》"); list.add("《狂人日记》"); list.add("《狂人日记》"); input.put("小王", list); Map《String, Map《String, Integer》》 maplist = add(input); System.out.println(maplist.get("小王").get("《狂人日记》")); } public static Map《String, Map《String, Integer》》 add( Map《String, List《String》》 input) { Map《String, List《String》》 maplist = new HashMap《String, List《String》》(); Map《String, Integer》 temp = new HashMap《String, Integer》(); temp.put("《狂人日记》", 0); Map《String, String》 map = new HashMap《String, String》(); map.put("小王", "《狂人日记》"); Map《String, Map《String, Integer》》 map2 = new HashMap《String, Map《String, Integer》》(); map2.put("小王", temp); Set《String》 names = map2.keySet(); Set《String》 names2 = input.keySet(); for (String str : names) { for (String str2 : names2) { if (str.equals(str2)) { for (String str3 : input.get(str2)) { temp.put(str3, map2.get(str).get(str3) + 1); map2.put(str, temp); } } } } return map2; }