List、Set和Map的意义和应用场景(简单明了 ̄□ ̄||)

(map就是从键(key)到值(value)的映射。因为重载了[]运算符,map像是数组的“高级版”。
例如可以用一个map<string, int> month_name 来表示“月份名字到月份编号”的映射)

从词义上可以看出来它们的大概作用:
list是顺序存放对象的,可以有相同的对象,通过索引存取;
set是无序存放对象的,其中不能有重复的对象(但LinkedHashSet是可以保证其有序性),set没有索引,使用迭代器iterator获取;
map,存放的是键与值的映射,其中键是唯一的(不能有重复对象),而值可以有重复的对象,存的时候,需要指定键和对应的值,取的时候可以根据键名取到值,也可以遍历。
至于在什么时候使用,这个是要因地制宜的。
list,如一个班的学生的成绩,成绩是可以重复的;
set,一般用于存放无序的不能重复的对象(但LinkedHashSet是可以保证其有序性),如一个班的学生的学号,学号是不能重复的;
map,用于存放具有对应关系的键值对,如一个班的学生的学号与姓名的映射,每个学号对应了一个学生的姓名,学号不能重复,但是姓名可能会重复;

猜你喜欢

转载自blog.csdn.net/weixin_44186547/article/details/89585329