集合

list   列表
set 集合
map 映射

从词义上可以看出来它们的大概作用:

列表是顺序存放对象的,可以有相同的对象,通过索引存取;

集合是无序存放对象的,其中不能有重复的对象(唯一的,回忆高中时候数学中学习的集合特性),集合没有索引,只能遍历次存取;

映射,存放的是键与值的映射,其中键是唯一的(不能有重复对象),而值可以有重复的对象,存的时候,需要指定键和对应的值,取的时候可以根据键名取到值,也可以遍历。

至于在什么时候使用,这个是要因地制宜的。
列表,在能直接使用数组的时候,就有使用列表,如一个班的学生的成绩,成绩是可以重复的;
集合,一般用于存放无序的(指顺序不重要)不能重复的对象,如一个班的学生的学号,学号是不能重复的;
映射,用于存放具有对应关系的键值对,如一个班的学生的学号与姓名的映射,每个学号对应了一个学生的姓名,学号不能重复,但是姓名可能会重复;
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低
Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet
SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现)
Query接口有一个实现类:LinkList
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap
其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对

转载的,以后懂了在做修改

阅读更多
上一篇关于this的意义
下一篇Java中List,Set和Map详解及其区别和使用场景(转)
想对作者说点什么? 我来说一句

x-skin集合x-skin集合

2010年03月17日 10.19MB 下载

事件集合js事件集合js事件集合

2010年06月19日 628KB 下载

网络工具集合网络工具集合

2009年03月07日 6.55MB 下载

Hibernate帮助文档集合

2012年10月17日 8.33MB 下载

debugging tools

2017年10月27日 70.68MB 下载

Java集合 练习代码

2017年10月21日 28KB 下载

Java Generics and Collections

2018年05月09日 2.13MB 下载

户型集合户型集合户型集合

2014年09月27日 11.63MB 下载

FLEX资料集合 FLEX资料集合

2010年03月20日 11.26MB 下载

没有更多推荐了,返回首页

关闭
关闭