标签:
很好的文章: http://blog.csdn.net/speedme/article/details/22398395
一、
其实实际开发中,就list和map用的多点
list嘛 比如你从数据库里读了很多条记录 经过处理封装成对象 就可以装在一个该对象类型的list里面,就可以迭代访问里面每个对象,里面的对象是有顺序的,只有索引,你不能通过对他们取别的名字之类的得到她 ;
map呢 是key-value组成的键值对;value可以是任意object;key是一个String;你可以通过key访问value;比如在servlet技术中,放在request和response里的东西这些都是map;还有比如解析xml的时候,你读到的东西,也可以用map来保存
二、
List接口继承collection接口,Map是个顶级接口
List此接口的用户可以对列表中每个元素的插入位置进行精确地控制。
用户可以根据元素的整数 索引(在列表中的位置)访问元素,并搜索列表中的元素
map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值
简单的说就是list只能保存一列表;Map<k,v>能保存2列表
三、
list 列表
set 集合
map 映射
从词义上可以看出来它们的大概作用:
列表是顺序存放对象的,可以有相同的对象,通过索引存取;
集合是无序存放对象的,其中不能有重复的对象(唯一的,回忆高中时候数学中学习的集合特性),集合没有索引,只能遍历次存取;
映射,存放的是键与值的映射,其中键是唯一的(不能有重复对象),而值可以有重复的对象,存的时候,需要指定键和对应的值,取时可以根据键名取到值,也可以遍历。
至于在什么时候使用,这个是要因地制宜的。
列表,在能直接使用数组的时候,就有使用列表,如一个班的学生的成绩,成绩是可以重复的;
集合,一般用于存放无序的(指顺序不重要)不能重复的对象,如一个班的学生的学号,学号是不能重复的;
映射,用于存放具有对应关系的键值对,如一个班的学生的学号与姓名的映射,每个学号对应了一个学生的姓名,学号不能重复,但是姓名可能会重复;
标签:
原文地址:http://www.cnblogs.com/haitiansBlog/p/4915992.html