collection中的List和set。map的用法和区别.doc

collection中的List和set。map的用法和区别.doc

ID:57645950

大小:26.97 KB

页数:11页

时间:2020-08-30

collection中的List和set。map的用法和区别.doc_第1页
collection中的List和set。map的用法和区别.doc_第2页
collection中的List和set。map的用法和区别.doc_第3页
collection中的List和set。map的用法和区别.doc_第4页
collection中的List和set。map的用法和区别.doc_第5页
资源描述:

《collection中的List和set。map的用法和区别.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Collection         接口的接口  对象的集合 ├List                  子接口     按进入先后有序保存  可重复 │├LinkedList               接口实现类  链表  插入删除  没有同步  线程不安全 │├ArrayList                 接口实现类  数组  随机访问  没有同步  线程不安全 │└Vector                     接口实现类  数组                 同步       线程安全 │ └Stack └Set

2、                  子接口      仅接收一次,并做内部排序 ├HashSet │ └LinkedHashSet └TreeSet 对于List,关心的是顺序,它保证维护元素特定的顺序(允许有相同元素),使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素。 对于Set,只关心某元素是否属于Set(不允许有相同元素),而不关心它的顺序。 Map               接口     键值对的集合 ├Hashtable                

3、 接口实现类                 同步          线程安全 ├HashMap                  接口实现类                 没有同步   线程不安全 │├LinkedHashMap │└WeakHashMap ├TreeMap └IdentifyHashMap 对于Map,最大的特点是键值映射,且为一一映射,键不能重复,值可以,所以是用键来索引值。方法put(Objectkey,Objectvalue)添加一个“值”(想要得东西)和与“值”相关联的“键”(key)(使用它来查找)。方法ge

4、t(Objectkey)返回与给定“键”相关联的“值”。 Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用LinkedHashSet或者LinkedHashMap. 对于效率,Map由于采用了哈希散列,查找元素时明显比ArrayList快。   但我有一个自己的原则想法:复杂的问题简单化。即把很多晦涩难懂的问题用通俗直白的话,一下子就看明白了,而不是大段大段的写。不得不指出的是现在部分所谓的“专家”往往把简单的问题复杂化,让人看了生畏,甚至望而却步,以此

5、来显示他的高深莫测,当然也可能有别的用意,那我就不得而知了。 更为精炼的总结: Collection是对象集合,Collection有两个子接口List和Set List可以通过下标(1,2..)来取得值,值可以重复 而Set只能通过游标来取值,并且值是不能重复的 ArrayList,Vector,LinkedList是List的实现类 ArrayList是线程不安全的,Vector是线程安全的,这两个类底层都是由数组实现的 LinkedList是线程不安全的,底层是由链表实现的   Map是键值对集合 HashTable和HashMap是

6、Map的实现类   HashTable是线程安全的,不能存储null值   HashMap不是线程安全的,可以存储null值     所以,如果你是想在一个很短的时间来弄明白这些问题,比如1~2分钟。没有也不想花大量时间于此,那么建议你现在就可以收兵走人了。   如果你想对此做一个详细的了解,请继续看下去。   众所周知,Java来源于C++,屏蔽了其底层实现,简化了对底层实现的管理,使开发者专注于上层功能的实现。在C/C++里关于数据的存储需要程序员非常清楚,而Java程序员可以完全不管这些,那么,Java是怎么管理的呢?其实Java还是

7、需要面临这些问题,只不过经过封装后,变得面目全非。所以对于像我这种从C/C++转向Java的人还需要一段时间适应,Collection、List、Set、Map等概念还需要一个接受的过程。其实到后来发现,不管是什么语言,其底层存储不外乎数组、线性表、栈、队列、串、树和图等数据结构。想明白了这些,一切都敞亮了。   一、容器(Collection)接口   容器(Collection)是最基本的集合接口,一个容器(Collection)保存一组对象(Object),即对象是容器的元素(Elements)。一些Collection允许相同的元素

8、而另一些不行。一些能排序而另一些不行。JavaSDK不提供直接继承自Collection的类,JavaSDK提供的类都是继承自Collection的“子接口”如List和Set。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。