`
lovecontry
  • 浏览: 1053623 次
文章分类
社区版块
存档分类
最新评论

JAVA学习笔记 -- Vector, ArrayList, Array

 
阅读更多

前一阵子第一次用JAVA写了个项目,这距离我认真学习JAVA还不到2个月。很多时候,我不得不边学JAVA边写做项目。但正因为如此,我深刻体会到了JAVA的简单和方便。这其中Eclipse也起了很大的作用,当我在Eclipse上噼里啪啦的敲代码的时候,我才真切认识到在LINUX下敲VI是多么的土鳖。总而言之,我现在已经深深地”迷恋“上了JAVA,除了一点:不能”碰“内存这件事真的让我有时候很不爽。

说跑题了。

JAVA新手在使用JAVA的时候大概都会遇到这个问题:

JAVA中的Array, ArrayList, Vector, List, LinkedList有什么样的区别?尤其是Vector, ArrayList, Array之间的区别?因为这三个概念从本质上来说都是一样的,都是数组的数据结构。

关于这个问题,这里有篇文章:

http://www.javaworld.com/javaworld/javaqa/2001-06/03-qa-0622-vector.html

已经解释得很清楚了,我简单概括一下。


Vector这个类是thread safe的。就是说,多线程同时调用同一个Vector的方法不会造成数据的混乱。而ArrayList不是thread safe。所以,如果是多线程的程序,多使用Vector,这样不需要自己维护concurrency。


数据的增长模式不一样。无论是Vector还是ArrayList,内部都是用一个Array来实现的,这就意味着,一旦数据越来越多超过了原来Array的容量的时候,Vector和ArrayList都需要扩充Array来满足新的数据。Vector每次扩充的时候都增长一倍,就是说新的Array的size是旧的Array的size的2倍。而ArrayList每次扩充,它的Array的size只增加50%.


最后,如果程序对于性能要求很高的话,Vector和ArrayList最好哪个都别用,而使用原始的Array。


分享到:
评论

相关推荐

    java学习笔记-初学者的福音

    这份"java学习笔记-初学者的福音"涵盖了从基础到进阶的多种概念,旨在帮助初学者系统地掌握Java编程。 首先,Java的基础部分包括语法结构。Java是一种面向对象的语言,这意味着它将数据和操作数据的方法封装在类中...

    java学习笔记-----给java初学者

    Java学习笔记是专门为Java初学者设计的一套详尽的学习资源,旨在帮助新手快速掌握这门广泛使用的编程语言。这份笔记涵盖了从基础概念到高级特性的全面内容,是学习和复习Java知识的理想工具。 1. **Java简介** ...

    java基础--list(ArrayList、LinkedList、匿名类).docx

    【Java基础——List接口详解(ArrayList、LinkedList、匿名类)】 在Java编程中,List接口是集合框架的重要组成部分,提供了有序存储元素的功能。ArrayList和LinkedList是List接口的两种主要实现,它们各有优缺点,...

    java学习笔记-达内科技

    这份“java学习笔记-达内科技”涵盖了从基础到高级的Java编程知识,旨在帮助初学者和进阶者深入理解Java的核心概念和技术。 首先,Java概述部分会介绍Java的历史、特点以及开发环境的搭建,包括安装JDK(Java ...

    2022年Java学习笔记-Java课程配套案例.rar

    这份"2022年Java学习笔记-Java课程配套案例.rar"压缩包文件显然是为了帮助学习者深入理解Java编程,通过实践案例来巩固理论知识。下面将详细探讨Java语言的一些核心知识点,并结合压缩包中的案例进行说明。 1. **...

    良葛格 Java 学习笔记-JavaGossip全(v1+v2)

    《良葛格 Java 学习笔记-JavaGossip全(v1+v2)》是一部集成了作者良葛格多年编程经验的学习资料,旨在帮助初学者和有经验的开发者深入理解和掌握Java这门强大的编程语言。这份笔记包含了JavaGossip的两个版本,v1和...

    java学习笔记-html-ssh-js

    【Java学习笔记】 在Java的学习旅程中,深入理解其核心概念是至关重要的。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和稳定性而受到青睐。本笔记集合将带你逐步走进Java的世界,从基础语法到...

    跟我学Java-day14-ArrayList集合.pdf

    day14-ArrayList集合 1.ArrayList 1.1ArrayList类概述【理解】 什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变 ArrayList集合的特点 ...底层是数组实现的,长度可以...array.add("java");

    java提高篇(二一)-----ArrayList.pdf

    "java提高篇(二一)-----ArrayList.pdf" ArrayList 是一个实现了 List 接口的动态数组,具有以下特点: 1. 动态数组:ArrayList 的大小是可变的,可以根据需要自动增长。 2. 实现了所有可选列表操作:ArrayList ...

    《java学习》-Java 学习笔记.zip

    本压缩包文件“《java学习》-Java 学习笔记.zip”包含了丰富的学习资源,帮助初学者和进阶者深入理解Java编程。 1. **Java基础知识** - **语法**:Java的基础语法包括变量、数据类型、运算符、流程控制语句(如if-...

    ---Java笔记---

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

    【IT十八掌徐培成】Java基础第10天-03.List-集合框架-ArrayList.zip

    通过学习“【IT十八掌徐培成】Java基础第10天-03.List-集合框架-ArrayList”的课程,开发者可以更好地理解和掌握ArrayList的使用,从而在实际项目中更高效地管理数据集合。同时,理解ArrayList与其他集合类的区别和...

    Java实用笔记-学点Java挺好的

    "Java实用笔记-学点Java挺好的"这个标题暗示了这是一份深入浅出的Java学习资料,适合那些想要掌握或提升Java技能的人。下面将根据描述和文件名,详细讲解Java学习的关键知识点。 1. **基础语法**:Java的基础语法是...

    Java学习笔记——良葛格

    "Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...

Global site tag (gtag.js) - Google Analytics