Java 集合框架-Map

来源:互联网 发布:牛顿环干涉实验数据 编辑:程序博客网 时间:2024/05/16 14:26

Map:一次添加一对元素。Collection 一次添加一个元素

Map也称为双列集合 Collection集合称为  单列集合

其实map集合中存储的就是键值对

map集合必须保证键的唯一性


常用方法:

1 添加

value put(key,value);返回前一个和key关联的值,如果没有返回null

2 删除

void clear():清空map集合

value remove(key):根据指定的key删除这个键值对

3 判断

containKey(key);

containValue(value);

4 获取

value get(key);通过键获取值 如果没有该键 返回null

当然可以通过返回null  来判断是否包含指定键

int size();获取键的个数



Map常用的子类:

|--Hashtable:内部结构是哈希表,是同步的 不允许null 作为键 null 作为值

|--Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合

|--HashMap:内部结构是哈希表,是不同步的 允许null 作为键 null 作为值

|--TreeMap:,内部结构是二叉书 不同步的 可以对Map中的集合中的键进行排序


List list=new ArrayList();//非同步的

list=MyCollections.synList(list);//返回一个同步list


给非同步的集合加锁。

class MyCollecitons implements List{
public List synList(List);

return new MyLIST(list);

}

class MyList{ 

private List list;

private static final Object lock=new Object();

MyList(List list){

this.list=list;

}

public boolean remove(Object obj){

synchronized(lock){

return list.remove(obj);

}

}

public boolean add(Object obj){

synchronized(locj){

return list.add(obj);

}

}

}



package Map.Demo;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class MapDemo {public static void main(String[] args) {Map<Integer,String> map=new HashMap<Integer, String>();//method(map);method_2(map);}public static void method_2(Map<Integer, String> map) {map.put(8, "wangwu");map.put(2, "zhaoliu");map.put(6, "zhangsan");map.put(3, "lisi");//取出map中的所有元素//原理 先通过keySet方法获取map中所有的键所在的Set集合,再通过Set的迭代器获取到每一个元素//在对每一个键获取其对应的值即可Set<Integer> keySet=map.keySet();Iterator<Integer> it=keySet.iterator();while(it.hasNext()) {Integer key=it.next();String value=map.get(key);System.out.println(key+":"+value);}   }public static void method(Map<Integer,String> map) {//学号和姓名//添加元素System.out.println(map.put(8, "wangcai"));//nullSystem.out.println(map.put(8, "xiaoqiang"));//value 存相同键值会覆盖map.put(2, "zhangsan");map.put(7, "zhaoliu");System.out.println(map);//删除 //System.out.println("remove:"+map.remove(2));//System.out.println(map);//判断 //System.out.println("containKey:"+map.containsKey(7));//获取System.out.println("get:"+map.get(8));}}

原创粉丝点击