在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)。
分享到:
相关推荐
#### 实现类介绍 - **HashSet**:基于哈希表实现,提供高效的元素插入、删除和查找操作。元素无序,不能保证元素的顺序。 - **TreeSet**:基于红黑树实现,能够对元素进行排序,支持高效的范围查询。元素按自然顺序...
掌握List集合、Set集合、Map集合的使用以及Iterator迭代器和foreach循环的使用 了解常用的集合类 熟悉泛型的使用
在Java中,最常见的对象容器包括ArrayList、List、Set和HashMap等。这些容器各自具有不同的特性和用途,理解并熟练掌握它们对于提升Java编程能力至关重要。 ArrayList是Java集合框架中的一个动态数组,它允许我们在...
在Java集合框架的学习中,除了List接口的实现,还应了解Set接口(如HashSet和TreeSet)和Map接口(如HashMap和TreeMap)等其他容器,以及它们的数据结构和操作特性。同时,关注集合框架的并发支持,如...
* List:ArrayList、LinkedList * Map:HashMap、TreeMap ArrayList 是一个可以自动增长容量的数组,我们可以将其看作是一个可以自动增长容量的数组。ArrayList 提供了 toArray() 方法,返回一个数组。Arrays....
ArrayList和LinkedList虽然不是Set,但它们的父接口List属于Collection,而Collection接口有一个子接口Set,例如HashSet是Set接口的一个实现,它内部基于HashMap实现,保证元素唯一性。 7. WeakHashMap WeakHashMap...
ArrayList和LinkedList是两种常用的List实现类。ArrayList实现了可变大小的数组,它允许所有元素,包括null。ArrayList没有同步。size、isEmpty、get、set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个...
LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private protected this super static final const null...
LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private protected this super static final const null...
常用实现类:ArrayList、LinkedList、HashMap、HashSet等。 集合的底层实现原理(如ArrayList的动态扩容、HashMap的散列算法)。 Java多线程与并发: 线程的创建与管理:Thread类、Runnable接口、Callable接口。 ...
Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)
在Java编程语言中,集合框架是处理对象组织和操作的...在多线程环境中,线程安全的实现如Vector和Hashtable是必要的,但在单线程或性能要求较高的情况下,非线程安全的实现如ArrayList、LinkedList和HashMap通常更优。
这份"Java企业系列面试题(集合篇)"的文档很可能包含了关于ArrayList、LinkedList、HashMap、HashSet、TreeMap等核心集合类以及它们的特性和使用的常见问题。让我们深入探讨一下这些知识点。 1. **ArrayList**:...
1. **集合框架理解**:深入理解Java集合框架,包括List接口、Set接口和Map接口,以及它们的实现类如ArrayList、LinkedList、HashSet、HashMap等。 2. **ArrayList与LinkedList的区别**:对比分析ArrayList和...
11. Java 中的集合类包括 ArrayList、LinkedList、HashMap 等类,ArrayList 和 LinkedList 均实现了 List 接口,HashMap 实现 Map 接口。 12. ArrayList 和 Vector 的区别是 ArrayList 是线程不安全的,Vector 是...
ArrayList与LinkedList是Java集合框架中的两种重要列表实现。LinkedList以双向链表的形式存储元素,因此在插入和删除操作上具有O(1)的时间复杂度,但在随机访问元素时性能较差,时间复杂度为O(n)。选择ArrayList还是...
List的实现类有很多,例如ArrayList、Vector、LinkedList等。ArrayList和Vector都是基于数组的实现,LinkedList是基于链表的实现。ArrayList和Vector的主要区别在于Vector使用了synchronized方法,线程安全,而...
ArrayList LinkedList Vector HashMap ComcurrentHashMap LinkedHashMap Set IO 集合 源码学习 equals 编码规范 注解-未总结 :spider_web:前端 :revolving_hearts:数据结构和算法 CH LFU LRU :woman_biking:网络 :...
常见的 List 实现类有 ArrayList 和 LinkedList。 * Set 是一个无序集合,不允许存储重复的数据。常见的 Set 实现类有 HashSet 和 TreeSet。 * Map 是一个无序集合,集合中包含一个键对象和一个值对象,键对象不允许...