这样是不对的 Map map =new Map(); Map是个接口不能实例化
Collection
/ \/ \
/ \
Set List(有顺序,可以重复)
/ \ \
/ | \
/ HashSet \
/ (不重复,没有特定顺序) / \
/ / \
SortedSet(有顺序) LinkList ArrayList
/
/
TreeSet(不重复,有顺序,类型一样)
Map--->HashMap
Map--->TreeMap
Map--->SortedMap
1:Map 是一个接口,HashMap 是一个类,也就是HashMap实现了Map的所有方法。
HashMap你可以理解成是一对对数据的集合我暂时把List 改成String 你方便理解 Map<String, String> map=new HashMap<String,String>(), map.put(key,value); key可以理解成房子 value 可以理解成 住户名(这儿假设一个大学宿舍只能住一个人) map.put("S301","张三"); 那就是说S301 这个房间 只有 张三这么个住户 map.put("S301","张三"); map.put("S301","李四"); 那只保留map.put("S301","李四"); 因为只能住一个 张三被赶出来了 Productlist.get(key); 就是根据房间号 获取对应的住户名 然后执行 String sss=map.get("S301"); 以后 sss="李四" 实际上 key 和value 可以是任何对象 这儿只是拿string 举例 现在改回来Map<String, List> map=new HashMap<String,List>(), List就是一个数据列表 你现在而已理解成 一个名字的列表List<String> list = new LinkedList<String>(); list.add("张三"); list.add("李四"); list.add("王五"); 然后 我们假设S301是个大学宿舍 能住很多人 list就是名字列表map.put("S301",list); 那样的话 就能储存S301所有住户的名字了同样 可以保存 所有宿舍楼的信息 map.put("S302",list1); map.put("S303",list2);map(映像)接口
/ \
/ \
HashMap实现类 HashTable实现类
HashMap,HashTable都是map的实现类。都是以键值对的形式存储数据。HashiMap没有实现线程安全允许null的键值