步步扎进java-集合之Map

原创 2017年01月02日 21:56:27

    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安全

版权声明:本文为博主原创文章,未经博主允许不得转载。

java中线程安全提现在两个方面

java中线程安全提现在两个方面

在Java项目中调用各种存储过程

一:Java如何实现对存储过程的调用: ①不带输出参数的    ---------------不带输出参数的---------------------------------- create p...

步步扎进Java-异常处理

1.体系结构    java.lang.Object            |----java.lang.Throwable     |-------java.lang.Error:错误,java程序...

步步扎进Java-面向对象

面向对象的三条主线:    1.类及类的成分   2.面向对象的三大特性  3.其他的关键字:this super import package abstract static final inter...

一头扎进Shiro-自定义Realm

详细讲解shiro框架自定义realm的实现和shiro框架的登录验证过程

一头扎进springboot之捕获全局异常

我们在写项目的过程中,遇到各种各样的异常都是很常见的,但是作为开发人员,是肯定不能将程序的异常暴露给用户的,我们需要对其进行友好提示,那么在springboot中,我们可以使用注解,在一个类中,把一些...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:步步扎进java-集合之Map
举报原因:
原因补充:

(最多只允许输入30个字)