步步扎进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-多线程

有必要在最前讲讲程序、进程、线程之间的关系。计算机角度出发考虑的话,一个进程是一个程序,多个进程(例如浏览器的多个进程)对计算机来说就是多个不同的程序,而不会把他们当做一个完整的“程序”。进程之间是互...
  • z15732621582
  • z15732621582
  • 2017年01月21日 21:04
  • 374

步步扎进Java-面向对象

面向对象的三条主线:    1.类及类的成分   2.面向对象的三大特性  3.其他的关键字:this super import package abstract static final inter...
  • z15732621582
  • z15732621582
  • 2017年01月15日 20:57
  • 419

步步扎进Java-异常处理

1.体系结构    java.lang.Object            |----java.lang.Throwable     |-------java.lang.Error:错误,java程序...
  • z15732621582
  • z15732621582
  • 2017年01月01日 20:26
  • 320

步步扎进Java-泛型与集合

背景:    当元素存入集合时,集合会将元素转换为Object类型存储,当取出时也是按照Object取出的,所以用get方法取出时,我们会进行强制类型转换,并且通过代码也可以看出来,我们放入其他类型...
  • z15732621582
  • z15732621582
  • 2017年01月23日 14:53
  • 376

Java-集合之Map

Map集合的两种读取方式
  • tsoTeo
  • tsoTeo
  • 2017年06月29日 18:36
  • 223

java-集合Map接口

Map接口 Map接口用于维护“键-值对”的关联性,可以通过键查找值 HashMap是Map接口的一个具体实现类 Map接口的常用方法 Map集合的...
  • sun_smile1
  • sun_smile1
  • 2017年10月21日 15:01
  • 58

Java-集合、Map

常用集合、Map
  • nashui11
  • nashui11
  • 2016年06月08日 10:10
  • 86

【一头扎进JMS】(3)----ActiviteMQ点对点消息实现+消息监听

上篇博客介绍了点对点消息的实现,这次将在此基础上,添加消息监听.监听的好处:自动监听消息,在监听到消息生产者消息后立即回传接到命令,并开始进行处理,进行异步处理,避免消费者等待. 消息生产者: pac...
  • u013086062
  • u013086062
  • 2017年06月11日 15:21
  • 846

一头扎进springboot之Hello World

用过Spring框架的人都知道,使用中需要配置很多的xml文件,这使得开发变得有些累赘,而springboot的出现呢就正好解决了这一大问题,一个项目甚至不用部署,不需要tomcat就能独立运行,大大...
  • qiuqiu_qiuqiu123
  • qiuqiu_qiuqiu123
  • 2017年11月09日 14:39
  • 126

一头扎进 JMS 之 ActiveMQ 视频教程

一头扎进 JMS 之 ActiveMQ 视频教程参考“www.java1234.com”视频,适合入门,只简单d介绍工作的中常用的两种方式1:点对点消息实现,2:发布-订阅消息模式实现...
  • kinbridge
  • kinbridge
  • 2016年09月25日 15:23
  • 2609
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:步步扎进java-集合之Map
举报原因:
原因补充:

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