实现Map接口的类用来存储键—值 对。
Map接口的实现类有HashMap和TreeMap等。
Map类中存储的键—值通过键来标识,所以键值不能重复
Object put (Object key, Object value)//返回值是旧的value值, 如果传入的key已经存在的话,新的value会替换旧的value
Object get (Object key) ;//拿到相对应的value对象
Object remove (Object key) ;//移除相对应的value对象
boolean containsKey (Object key) ;//是否包含这个key
boolean containsValue(Object value)//是否包含这个值
int size ();//一共多少对对象
boolean isEmpty();是不是空的
void putAll(Map t);把另外一个Map全部的东西都加进来
void clear();//清除
Map集合遍历的方式1
package com.liushuaishuai;
/*
Map集合的遍历(方式1)
1获取所有键的集合用keySet
2遍历键的集合,获取每一个键,用增强for
3根据键去找值,用get(Object key)方法实现
*/
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo01 {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<>();
//添加元素
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("张无忌","周芷若");
//获取所有的键组成的集合,用keySet()方法实现
Set<String> keyset = map.keySet();
// 遍历上述得到的键的集合,使用增强for
for(String s:keyset) {
//根据键找值,使用get(Object key)方法实现
String s1 = map.get(s);
System.out.println(s+","+s1);
}
}
}
Map集合遍历方式2
例子如下:
import java.util.List; import java.util.LinkedList; import java.util.Collections; import java.util.*; public class Test { public static void main(String[] args) { Map m1 = new HashMap();Map m2 = new TreeMap(); m1.put("one",new Integer(1)); m1.put("two",new Integer(2)); m1.put("three",new Integer(3)); m2.put("A",new Integer(1)); m2.put("B",new Integer(2)); System.out.println(m1.size()); System.out.println(m1.containsKey("one")); System.out.println(m2.containsValue(new Integer(1))); if(m1.containsKey("two")) { int i = ((Integer)m1.get("two")).intValue(); System.out.println(i); } Map m3 = new HashMap(m1); m3.putAll(m2); System.out.println(m3); /*List l1 = new LinkedList(); l1.add(new Name("Karl","M")); l1.add(new Name("Steven","Lee")); l1.add(new Name("John","O")); l1.add(new Name("Tom","M")); System.out.println(l1); Collections.sort(l1); System.out.println(l1);*/ /* Set s = new HashSet(); s.add("hello"); s.add("world"); s.add(new Name("f1","11")); s.add(new Integer(100)); */ /* s.add("hello"); s.add("hello"); */ //Set /* Set s1 = new HashSet(); Set s2 = new HashSet(); s1.add("a");s1.add("b");s1.add("c"); s2.add("d");s2.add("a");s2.add("b"); Set sn = new HashSet(s1); sn.retainAll(s2); Set su = new HashSet(s1); su.addAll(s2); System.out.println(sn); System.out.println(su); */ /* Collection c = new HashSet(); c.add("hello"); c.add(new Name("f1","11")); c.add(new Name("f2","12")); c.add(new Name("f3","13")); c.add(new Integer(100)); c.remove("hello"); c.remove(new Integer(100)); Iterator i = c.iterator(); while(i.hasNext()) { Name n = (Name)i.next(); System.out.print(n.getfirstName()+" "); }*/ /*System.out.println(c.remove(new Name("f1","11"))); System.out.println(c);*/ } } class Name implements Comparable { private String firstName,secondName; public Name(String firstName,String secondName) { this.firstName = firstName; this.secondName = secondName; } public String getfirstName() {return firstName;} public String getsecondName() {return secondName;} public String toString() { return firstName+" "+secondName; } public boolean equals(Object obj) { if(obj instanceof Name) { Name name = (Name) obj; return (firstName.equals(name.firstName))&&(secondName.equals(name.secondName)); } return super.equals(obj); } public int hashCode() { return firstName.hashCode(); } public int compareTo(Object o) { Name n = (Name) o; int lastCmp = secondName.compareTo(n.secondName); return (lastCmp!=0 ? lastCmp:firstName.compareTo(n.firstName)); } }
用hashmap来统计字符串中字母出现的次数
package com.maptest01; import java.util.HashMap; import java.util.Scanner; import java.util.Set; public class staticchar { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串"); String s = sc.nextLine(); HashMap<Character, Integer> hm1 = new HashMap<Character, Integer>(); for (int i = 0; i < s.length(); i++) { char key = s.charAt(i); Integer value = hm1.get(key); if (value == null) { hm1.put(key, 1); } else { value++; hm1.put(key, value); } } Set<Character> keyset = hm1.keySet(); for (Character x : keyset) { Character key = x; Integer value = hm1.get(key); System.out.print(key + "(" + value + ")"); } } }