Map:
Map也是集合中的一个分类,但是他与List和Set有些区别,List和Set是用于存储单个单个
对象的集合,而Map是成对成对出现的,也就是说,Map中,一个对象其实是有两个对象
组成的,我们在使用的时候,就是使用一对一对的对象,比如说:我们登录某个软件需要
账户和密码,在同一个软件中,他的账户是具有唯一性的,而密码却是非唯一的,比如我
们常用的聊天软件QQ,每个人的QQ号是唯一的,而密码却是按照某种规则随意设定了,
两个账号的密码是可以完全相同的。使用Map的方法是创建Map的实现类对象,因为Map
是一个接口,而我们知道接口是不允许被创建实例的,创建的形式可以使常用实现类对象
的实例,也可以使用多态来构建实例。
例如:
HashMap hm = new HashMap(); // 普通形式的创建
Map m = new HashMap(); //多态形式创建、
在创建好对象以后,我们需要对Map进行存储和添加数据,我们知道,List和Set添
加元素是用add方法添加的,
例如:
m.add(element);//element可以使任意的元素(此时的m代表的是List或Set)。
而Map中添加的是一对一对的元素,这时候就需要一次传入两个element,感觉以前
用add方法添加的都是单个element,现在添加两个element,就有点不适应,所以就使
用put方法来 添加(这是我个人的理解).
例如:
m.put(key, vaule);//key代表键,vaule代表值。我们常说键值对。将这两个元
素代表成一个对象,使用的其实就是这个对象。因为他们是相互依存的,只有账号没有
密码是登陆不了软件的,当然有密码没有账号更是不能登陆的。所以,我们将这两个元
素当成是一个对象。
在学链表的时候,我们知道他的规则是将元素封装在一个对象中,而这个对象
中又有一个字段,可以存储另一个对象的地址,这样就可以将他们一个个的串联起来。
由此我们能够想到,Map不也是有两个元素嘛,我们也可以将他们封装成一个对象来进
行存储,那么我们获取到单个的这个对象不就能够获取到这个对象里面的key和vaule
吗?在Map中,这个特别的对象我们就叫Map.Entry。