您的位置:首页 > 编程语言 > Java开发

步步扎进java-集合之Map

2017-01-02 21:56 429 查看
   
Map是从键到值的映射,键不允许重复,每个键最多能映射一个值。Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。当然在使用过程中,某个键所对应的值对象可能会发生变化,这时会按照最后一次修改的值对象与键对应。对于值对象则没有唯一性的要求。你可以将任意多个键都映射到一个值对象上,这不会发生任何问题。
    Map有两种比较常用的实现:HashMap和TreeMap。HashMap也用到了哈希码的算法,以便快速查找一个键,TreeMap则是对键按序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey()等,你还可以从TreeMap中指定一个范围以取得其子Map。键和值的关联很简单,用pub(Object key,Objectvalue)方法即可将一个键与一个值对象相关联。用get(Objectkey)可得到与此key对象所对应的值对象。
Put
向Map中添加一个元素
Map是从键到值的映射,键不允许重复,每个键最多能映射一个值.

remove(O key)按指定的可以删除kV对
get()获取指定的key-value,若无则返回null
SetkeySet()
Collectionvalues()
1.遍历key集
Setset=map.keyset();
For(Objectobj:set){
System.out.printin(obj);}
2.遍历Value集
Collectionvalues=map.values();
Iteratori=values.iterator();
While(i.hasNext()){System.out.printin(i.next());}
3.如何遍历Key-Value对
Setset1=map.keySet();
for(Object obj:set1){
System.out.printin(obj+ "---->" +map.get(obj));
Setset2=map.entryset();
For(Objectobj:set2){
Map,entryentry=(Mao.Entry)obj;
System.out.printin(entry)
 
Publicclass test1(){
 
Mapmap=new HashMap();
Map.put("AA",123);
map.put(null,null);
map.put(new person(“DD”,23),89);
 
System.out.print(map.size());
 
   
HashMap:
1.key是用Set来存放的,不可重复。value使用collection存放的,可重复。一个Key-Value对是一个Entry。所有的Entry是用Set来存放的也是不重复的。
2.向HashMap中添加元素是会调用可以所在类的equals()方法,判断两个key是否相同,若相同则只能添加进后添加的那个元素。
 
LinkedHashMap 
顺序跟添加进去的一致
使用连边维护添加进Map的舒新生,因此遍历Map的是按照添加的顺序遍历的。
 

    TreeMap按照添加进Map中的元素的key的指定属性进行排序;要求key必须是一个同一个来的对象.针对key进行自然排序VS定制排序
                               
Publicclass test(){
Mapmap=new TreeMap();
map.put(new person(“AA”,23),78);
map.put(new person(“BB”,22),89);
map.put(new person(“CC”,13),12);
map.put(new person(“DD”,23),45);
}
Hashtable不能存储null
古老的实现类,线程安全不建议使
Properties常用来处理属性文件,键值都为String类型
load(new FileInputStream(newFile(“”)))
 
操作Collection和Map的工具类,Collections
Reverse()List 
翻转list中元素的顺序
shuffle(List)随机排序
sort(List)根据元素的自然顺序对指定的List集合按升序排序
sort(List Comparator)而根据指定的Conaparetor产生的顺序对List进行集合元素排序
swap(List,int,int)将指定的List集合中的i处元素和J出的元素交换
 
Listlist1=Array.aslist(new Object[list.size()])形成一个和list大小相等的list1
 
Collections类中提供多个Synchronized
安全性 Collection.SynchronizedList比ArrayList安全
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: