ArrayList能让你用数字在一个对象序列里面进行选择,所以从某种意义上讲,它是将数字和对象关联起来。但是,如果你想根据其它条件在一个对象序列里面进行选择的话,那又该怎么做呢?栈就是一个例子,它的标准是选取最后一个被压入栈的对象。我们常用的术语map,就是一种非常强大的,能在序列里面进行挑选的工具。从概念上讲,它看上去像是一个ArrayList,但它不用数字,而是用另一个对象来查找对象,这是一个至关重要的编程技巧。
这一概念在Java中表现为map,put方法会往map里面加一个值,并且把这个值同键联系起来。给出键之后,get就会返回与之向关联的值。Java标准类库里有好几种map,它们都实现了map的基本接口,但是在行为方式方面有着明显的差异。这些差异体现在效率上,持有和表示对象pair的顺序,持有对象的时间长短,以及如何决定键的相等性。