关闭

步步扎进java-集合之Map

367人阅读 评论(0) 收藏 举报

    Map是从键到值的映射,键不允许重复,每个键最多能映射一个值。Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。当然在使用过程中,某个键所对应的值对象可能会发生变化,这时会按照最后一次修改的值对象与键对应。对于值对象则没有唯一性的要求。你可以将任意多个键都映射到一个值对象上,这不会发生任何问题。

    Map有两种比较常用的实现:HashMap和TreeMap。HashMap也用到了哈希码的算法,以便快速查找一个键,TreeMap则是对键按序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey()等,你还可以从TreeMap中指定一个范围以取得其子Map。键和值的关联很简单,用pub(Object key,Objectvalue)方法即可将一个键与一个值对象相关联。用get(Objectkey)可得到与此key对象所对应的值对象。

Put Map中添加一个元素

Map是从键到值的映射,键不允许重复,每个键最多能映射一个值.

removeO 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();

forObject 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.putnullnull);

map.putnew 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.putnew person(“AA”,23),78);

map.putnew person(“BB”,22),89);

map.putnew person(“CC”,13),12);

map.putnew person(“DD”,23),45);

}

Hashtable不能存储null 古老的实现类,线程安全不建议使

Properties常用来处理属性文件,键值都为String类型

loadnew FileInputStreamnewFile(“”)))

 

操作CollectionMap的工具类,Collections

Reverse()List  翻转list中元素的顺序

shuffleList)随机排序

sortList)根据元素的自然顺序对指定的List集合按升序排序

sortList Comparator)而根据指定的Conaparetor产生的顺序对List进行集合元素排序

swapListintint)将指定的List集合中的i处元素和J出的元素交换

 

Listlist1=Array.aslist(new Object[list.size()])形成一个和list大小相等的list1

 

Collections类中提供多个Synchronized

安全性 Collection.SynchronizedListArrayList安全

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:63987次
    • 积分:7894
    • 等级:
    • 排名:第2783名
    • 原创:118篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2711条
    文章分类
    1