`
1927105
  • 浏览: 150085 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ArrayList LinkedList Set HashMap介绍

 
阅读更多

在Java中提供了Collection和Map接口。其中List和Set继承了Collection接口;同时用Vector、ArrayList、LinkedList三个类实现List接口,HashSet、TreeSet实现Set接口。直接有HashTable、HashMap、TreeMap实现Map接口。

Vector基于Array的List,性能也就不可能超越Array,并且Vector是“sychronized”的,这个也是Vector和ArrayList的唯一的区别。
ArrayList:同Vector一样是一个基于Array的,但是不同的是ArrayList不是同步的。所以在性能上要比Vector优越一些。适用于顺序性的查找
LinkedList:不同于前面两种List,它不是基于Array的,作为链表数据结构方式,所以不受Array性能的限制。当对LinkedList做添加,删除动作的时候只要更改nextNode的

相关信息就可以实现了,所以它适合于进行频繁进行插入和删除操作。这就是LinkedList的优势,当然对于元素的位置获取等方面就逊色很多。

List:
1. 所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。
2. 所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ];
3. 所有的List中可以有null元素,例如[ tom,null,1 ];
4. 基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作。

虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的

根本区别。
HashSet:HashSet的存储方式是把HashMap中的Key作为Set的对应存储项,HashMap的key是不能有重复的。HashSet能快速定位一个元素,但是放到HashSet中的对象需要实现

hashCode()方法。
TreeSet:将放入其中的元素按序存放,这就要求你放入其中的对象是可排序的。TreeSet不同于HashSet的根本是TreeSet是有序的。它是通过SortedMap来实现的。
Set总结: 1. Set实现的基础是Map(HashMap);
2. Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象,不能包含两个元素e1、e2(e1.equals(e2))。

Map是一种把键对象和值对象进行关联的容器,Map有两种比较常用的实现: HashTable、HashMap和TreeMap。
HashMap也用到了哈希码的算法,以便快速查找一个键,
TreeMap则是对键按序存放,因此它有一些扩展的方法,比如firstKey(),lastKey()等。
HashMap和Hashtable的区别。
HashMap允许空(null)键(key)或值(value),由于非线程安全,效率上可能高于Hashtable。
Hashtable不允许空(null)键(key)或值(value)。

分享到:
评论

相关推荐

    51. ArrayList LinkedList Set HashMap介绍.txt

    #### 实现类介绍 - **HashSet**:基于哈希表实现,提供高效的元素插入、删除和查找操作。元素无序,不能保证元素的顺序。 - **TreeSet**:基于红黑树实现,能够对元素进行排序,支持高效的范围查询。元素按自然顺序...

    Java 集合类(HashSet、ArrayList、LinkedList、HashMap).pptx

    掌握List集合、Set集合、Map集合的使用以及Iterator迭代器和foreach循环的使用 了解常用的集合类 熟悉泛型的使用

    java对象容器(涉及HashMap,ArrayList,Set等)

    在Java中,最常见的对象容器包括ArrayList、List、Set和HashMap等。这些容器各自具有不同的特性和用途,理解并熟练掌握它们对于提升Java编程能力至关重要。 ArrayList是Java集合框架中的一个动态数组,它允许我们在...

    第8讲 对比Vector、ArrayList、LinkedList有何区别1

    在Java集合框架的学习中,除了List接口的实现,还应了解Set接口(如HashSet和TreeSet)和Map接口(如HashMap和TreeMap)等其他容器,以及它们的数据结构和操作特性。同时,关注集合框架的并发支持,如...

    java集合类详解(set list ArrayList等java集合类详述)

    * List:ArrayList、LinkedList * Map:HashMap、TreeMap ArrayList 是一个可以自动增长容量的数组,我们可以将其看作是一个可以自动增长容量的数组。ArrayList 提供了 toArray() 方法,返回一个数组。Arrays....

    Java中List、ArrayList、Vector及map、HashTable、HashMap分别的区别.

    ArrayList和LinkedList虽然不是Set,但它们的父接口List属于Collection,而Collection接口有一个子接口Set,例如HashSet是Set接口的一个实现,它内部基于HashMap实现,保证元素唯一性。 7. WeakHashMap WeakHashMap...

    List、ArrayList、Vector及map、HashTable、HashMap分别的区别

    ArrayList和LinkedList是两种常用的List实现类。ArrayList实现了可变大小的数组,它允许所有元素,包括null。ArrayList没有同步。size、isEmpty、get、set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个...

    Java弱引用实现源码-coding-guide_i3geek:一名JAVA程序员,将自己的编程学习之路做以总结并进行分享。内容包括但不限于数

    LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private protected this super static final const null...

    基于javatcpsocket通信的拆包和装包源码-coding-guide_i3geek-master:编码指南_i3geek-master

    LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private protected this super static final const null...

    80w字Java面试宝典(非常全)

    常用实现类:ArrayList、LinkedList、HashMap、HashSet等。 集合的底层实现原理(如ArrayList的动态扩容、HashMap的散列算法)。 Java多线程与并发: 线程的创建与管理:Thread类、Runnable接口、Callable接口。 ...

    JAVA容器讲解.pdf

    Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)

    map,list,set,stack,queue,vector等区别和特点1

    在Java编程语言中,集合框架是处理对象组织和操作的...在多线程环境中,线程安全的实现如Vector和Hashtable是必要的,但在单线程或性能要求较高的情况下,非线程安全的实现如ArrayList、LinkedList和HashMap通常更优。

    Java企业系列面试题(集合篇).zip

    这份"Java企业系列面试题(集合篇)"的文档很可能包含了关于ArrayList、LinkedList、HashMap、HashSet、TreeMap等核心集合类以及它们的特性和使用的常见问题。让我们深入探讨一下这些知识点。 1. **ArrayList**:...

    毕业设计源码之ArrayList,LinkList链表接口实现.zip

    1. **集合框架理解**:深入理解Java集合框架,包括List接口、Set接口和Map接口,以及它们的实现类如ArrayList、LinkedList、HashSet、HashMap等。 2. **ArrayList与LinkedList的区别**:对比分析ArrayList和...

    黑马集合知识测试(带解析).doc

    11. Java 中的集合类包括 ArrayList、LinkedList、HashMap 等类,ArrayList 和 LinkedList 均实现了 List 接口,HashMap 实现 Map 接口。 12. ArrayList 和 Vector 的区别是 ArrayList 是线程不安全的,Vector 是...

    ArrayList共4页.pdf.zip

    ArrayList与LinkedList是Java集合框架中的两种重要列表实现。LinkedList以双向链表的形式存储元素,因此在插入和删除操作上具有O(1)的时间复杂度,但在随机访问元素时性能较差,时间复杂度为O(n)。选择ArrayList还是...

    Java容器类List、ArrayList、Vector及map、HashTable应用

    List的实现类有很多,例如ArrayList、Vector、LinkedList等。ArrayList和Vector都是基于数组的实现,LinkedList是基于链表的实现。ArrayList和Vector的主要区别在于Vector使用了synchronized方法,线程安全,而...

    java8源码-FiveYears:学习/总结/成长/记录

    ArrayList LinkedList Vector HashMap ComcurrentHashMap LinkedHashMap Set IO 集合 源码学习 equals 编码规范 注解-未总结 :spider_web:前端 :revolving_hearts:数据结构和算法 CH LFU LRU :woman_biking:网络 :...

    Java集合讲义大全.docx

    常见的 List 实现类有 ArrayList 和 LinkedList。 * Set 是一个无序集合,不允许存储重复的数据。常见的 Set 实现类有 HashSet 和 TreeSet。 * Map 是一个无序集合,集合中包含一个键对象和一个值对象,键对象不允许...

Global site tag (gtag.js) - Google Analytics