Map
用于保存具有映射关系的数据——map集合里面保存俩组值——一组保存map里面的key;另一组保存map里面的value
key和value都可以引用任何类型的数据;
key不允许重复,即同一个map对象的任何两个key通过equals方法比较中返回false;
key和value之间存在一对一关系,即通过指定的key总能找到唯一的,确定的value;
map接口——HashMap类
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Test3 {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("b", 1);// 添加数据
map.put("c", 2);// 添加数据
map.put("d", 2);// 添加数据
System.out.println(map);//{b=1, c=2, d=2}
System.out.println(map.get("b"));//根据key取值//1
map.remove("c");//根据key移除键值对
System.out.println(map);//{b=1, d=2}
System.out.println(map.size());//map集合的长度//2
System.out.println(map.containsKey("a"));//判断当前的map集合是否包含指定的key//false
System.out.println(map.containsValue(10));//判断当前的map集合是否包含指定的value//false
//map.clean();//清空集合
//遍历方式
map.keySet();//获取map集合的key的集合
map.values();//获取集合的所有value值
Set<String> keys=map.keySet();
//1.遍历map集合,通过map.keyset();
for(String key:keys){
System.out.println("KEY: "+key+",value: "+map.get(key));//KEY: b,value: 1
// KEY: d,value: 2
}
//2.通过map.entrySet()遍历map集合
Set<Entry<String,Integer>> entrys=map.entrySet();
for(Entry<String,Integer> en:entrys){
System.out.println("KEY: "+en.getKey()+",value: "+en.getValue());//KEY: b,value: 1 KEY: d,value: 2
}
}
}
HashMap和Hashtable区别
TreeMap
TreeMap的自然排序————字典排序
//Treemap的自然排序是字典排序
Map<Integer,String> map=new TreeMap<Integer,String>();
map.put(4, "a");
map.put(3, "a");
map.put(2, "a");
map.put(1, "a");
System.out.println(map);//{1=a, 2=a, 3=a, 4=a}
Map<String, String> map1=new TreeMap<String,String>();
map1.put("b", "b");
map1.put("c", "c");
map1.put("d", "d");
map1.put("a", "a");
map1.put("ab", "ab");
System.out.println(map1);//{a=a, ab=ab, b=b, c=c, d=d}