`
luccs624061082
  • 浏览: 84525 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ArrayList LinkedList Vector Stack

阅读更多
               ArrayList LinkedList  Vector Stack

   ArrayList LinkedList Vector 都继承List接口 ,List又继承于Collection接口。

Stack 继承Vector。
   ArrayList 在源码中是object[] 即数组实现。无synchronized 即线程不安全的。数组有下标,因此通过下标查询数据效率高(随机访问)。但是在数组中插入或删除某个元素,都会引起其他元素的移动,开销大,即删除和新增效率低下。不过在数组末端插入和删除,时间消耗也是O(1)
  
   LinkedList 是由链表实现的,也是线程不安全的。其由一个个节点组成,通过前后指针关联起来。插入和删除的时候 只要改变前后指针的指向就可以了,效率高。但是查询的时候,需要遍历,一个一个的查找,直到找到为止。效率低下。
   即 ArrayList 是由数组实现,线程不安全。查找效率高。删除和新增效率低。LinkedList是由链表实现。线程不安全。查询效率低,删除和新增效率高。
   Vector 也是由数组实现。有synchronized 即线程安全。因此花销大,效率比ArrayList低。如果不涉及到线程安全这块,更倾向于使用ArrayList。
   选择Vector还是ArrayList
   在线程安全上 上面已经说明了。
   在数组容量扩充上,Vector如果超过容量,容量自增一倍。ArrayList若超出容量,容量自增50%。,Vector似乎更容易造成内存浪费。ArrayList就有利于节约内存空间
分享到:
评论

相关推荐

    java8源码-csn-list:ArrayList、LinkedList、Vector、Stack源码分析

    java8 源码 List相关实现类的源码解析(JDK1.8) 2018.9.22- List的架构图 ArrayList 继承关系: ArrayList -> AbstractList ...ArrayList ...与Java中的数组相比,它的容量能动态增长。...LinkedList 继承关系: LinkedLis

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

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

    Java中Vector类和Stack类的学习_.docx

    这两个类在早期的Java版本中非常常见,但在现代Java开发中,由于性能和设计考虑,它们的使用逐渐被`ArrayList`和`LinkedList`等其他集合类替代。 `Vector`类是一种动态数组,它的设计初衷是为了弥补Java中没有指针...

    使用LinkedList模拟堆栈

    在Java中,虽然ArrayList和Vector类也可以用来实现堆栈,但LinkedList由于其特性,如高效地添加和删除元素,更适合作为堆栈的基础。 以下是使用LinkedList模拟堆栈的步骤: 1. 首先,我们需要创建一个LinkedList...

    Java中Vector类和Stack类的学习

    随着Java集合框架的发展,`ArrayList`和`LinkedList`等类在单线程环境下通常被视为更好的选择,因为它们提供了更高的性能。对于线程安全的需求,可以使用`Collections.synchronizedList`或`CopyOnWriteArrayList`来...

    Java 最常见的 208 道面试题:第二模块答案

    - **List**:有序且可重复元素的集合,如 ArrayList、LinkedList 和 Stack。 - **Set**:无序且不允许重复元素的集合,如 HashSet、LinkedHashSet 和 TreeSet。 - **Queue**:先进先出(FIFO)的数据结构,如 ...

    各种集合的总结

    总结了集合中常用的一点点,希望可以共享 List:LinkedList,ArrayList,Vector(Stack),Set Map:Hashtable,HashMap,WeakHashMap

    Java 72 道面试题及答案.docx

    List 接口的实现类主要有:ArrayList、LinkedList、Stack 以及 Vector 等。 List、Set、Map 三者的区别是:List 是一个有序容器,元素可以重复,可以插入多个 null 元素,元素都有索引。Set 是一个无序容器,不可以...

    ---Java笔记---

    除了ArrayList和LinkedList,Java的集合框架还提供了其他类型的列表实现,如Vector和Stack。Vector与ArrayList类似,也是基于数组实现,但它线程安全,但在多线程环境下,Vector的性能通常低于非同步的ArrayList。...

    JAVA中常用的集合类型

    List 接口的实现类有 ArrayList、LinkedList、Stack 和 Vector 等集合类。 * Map(映射):代表一个键值对的集合。 List 接口 List 接口代表一个有序的集合,可以对 List 接口代表的有序集合中每个元素的插入位置...

    Java 基础核心总结 +经典算法大全.rar

    ArrayList Vector LinkedList 类Stack HashSet TreeSet LinkedHashSet 类 PriorityQueue HashMap TreeMap 类 LinkedHashMap 类 Hashtable 类IdentityHashMap 类WeakHashMap 类 Collections 类集合实现类特征图 泛形 ...

    Java容器类的深入理解

    本文主要关注的是Java中的两种主要容器类型:Collection和Map,以及它们的一些具体实现,如List接口下的ArrayList、LinkedList和Vector,以及Map接口下的HashMap和Hashtable。 首先,我们来看List接口。List是有序...

    Java 72道面试题和答案.docx

    - List接口的实现类:ArrayList、LinkedList、Stack和Vector 6. **List、Set、Map的区别**: - List:有序容器,元素可重复,有索引,如ArrayList、LinkedList和Vector。 - Set:无序容器,不允许元素重复,如...

    Java中的Map&List;

    List接口的实现类有多种,包括ArrayList、Vector、LinkedList、Stack等。 ArrayList类 ArrayList类是List接口的实现类,使用动态数组来存储对象。ArrayList类提供了多种方法来添加、删除、遍历集合中的对象。例如...

    java常用操作代码

    常见的List实现类包括LinkedList、ArrayList、Vector和Stack。List接口提供了额外的方法如listIterator(),返回一个ListIterator,支持双向遍历和添加、删除元素。List的特点是元素可以通过索引访问,允许存储重复...

    部分Java数据结构使用

    Stack继承自Vector类,提供了push()用于压栈,pop()用于弹栈,peek()查看栈顶元素,以及其它相关方法。Stack常用于递归实现、回溯算法或处理程序调用堆栈等场景。 4. **Queue**: Queue是先进先出(FIFO)的数据...

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解2:Queue和LinkedList Java集合详解3:Iterator,fail-fast机制与比较器 Java集合详解4:HashMap和HashTable Java集合详解5:深入...

Global site tag (gtag.js) - Google Analytics