Java的数组(Array)、Vector、ArrayList、HashMap的异同
array(数组)和Vector是十分相似的Java构件(constructs),两者全然不同,在选择使用时应根据各自的功能来确定。
1、数组:Java arrays的元素个数不能下标越界,从很大程度上保证了Java程序的安全性,而其他一些语言出现这一问题时常导致灾难性的后果。
Array可以存放Object和基本数据类型,但创建时必须指定数组的大小,并不能再改变。值得注意的是:当Array中的某一元素存放的是Objrct reference 时,Java不会调用默认的构造函数,而是将其初值设为null,当然这跟Java对各类型数据赋默认值的规则是一样的,对基本数据类型同样适用。
2、Vector:对比于Array,当更多的元素被加入进来以至超出其容量时,Vector的size会动态增长,而Array容量是定死的。同时,Vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)。注意:当调用Vector的size()方法时,返回Vector中实际元素的个数。
Vector内部实际是以Array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.Object对象,不能用于存放基本类型数据,比如要存放一个整数10,得用new Integer(10)构造出一个Integer包装类对象再放进去。当Vector中的元素个数发生变化时, 其内部的Array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。
Vetor同时也实现了List接口,所以也可以算作Colletion了,只是它还特殊在:Vector is synchronized。即Vetor对象自身实现了同步机制。
3、ArrayList:实现了List接口,功能与Vetor一样,只是没有同步机制,当然元素的访问方式为从List中继承而来,可存放任何类型的对象。
4、HashMap:继承了Map接口,实现用Keys来存储和访问Values,Keys和Values都可以为空,它与Hashtable类的区别在于Hashtable类的Keys不能为null,并Hashtable类有同步机制控制,而HashMap类没有。
在Struts类库中实现了一个LableValueBean,用Lable(Key)来存储和访问Value,很方便。
分享到:
相关推荐
本文将详细探讨Array和ArrayList的异同点,帮助读者更好地理解这两种集合类型的特点及适用场景。 ### Array #### 定义: Array是最基础的数组类型,它是一种固定大小的数据结构,用于存储相同类型的元素集合。...
在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析。 一、数组Array 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的...
Array是最基本的数组类型,而ArrayList是Java集合框架的一部分,属于动态数组。本教程由程谱CodeRecipe提供,旨在帮助已经掌握了Java基础的初学者深入理解这两种数据结构,并在实际编程中灵活运用。 首先,我们来...
在.NET框架中,ArrayList是System.Collections命名空间下的一种动态数组,它可以存储任意类型的对象,而ListBox控件则是Windows Forms应用程序中常见的用户界面元素,用于显示一个可选项目的列表。本篇将详细介绍...
Java中将数组转换为ArrayList的方法 Java是一种面向对象的编程语言,广泛应用于Android应用开发、Web开发、桌面应用开发等领域。其中,数组和ArrayList是Java中两个非常重要的数据结构。数组是一种基本的数据结构,...
Java数组倒置是一个常见的编程操作,它涉及到对数组元素顺序的反转。在Java中,数组是一种数据结构,用于存储同一类型的多个元素。数组倒置,也就是将数组中的元素顺序从后往前排列,使得原数组的第一个元素变为最后...
Java 中数组列表 ArrayList 的使用 ArrayList 是 Java 中的一种动态数组,提供了动态的增加和减少元素的功能,实现了 ICollection 和 IList 接口,灵活地设置数组的大小。下面是 ArrayList 的一些重要的方法和属性...
Java数组是Java编程语言中基本的数据结构之一,它允许存储同一类型的多个元素。在本PPT中,我们将深入探讨Java数组的概念、创建、初始化、访问和操作数组的各种方法。 一、数组的概念 数组是一种线性数据结构,它将...
Java数组是程序设计中不可或缺的基础概念,它是一种数据结构,允许我们存储同类型的多个元素。在Java中,数组是对象,具有固定的大小,一旦创建,其长度就不能改变。本篇文章将深入探讨Java数组的各个方面,包括创建...
- Vector 和 ArrayList 都实现了 List 接口,其中 Vector 是线程安全的,而 ArrayList 不是。ArrayList 在插入和查找性能上通常优于 Vector,因为 Vector 的同步操作会带来额外的性能开销。 - LinkedList 实现了 ...
### C# 中 Array、ArrayList 和 List 的区别 在C#编程语言中,处理集合数据时,程序员经常需要根据实际需求选择合适的集合类型。本文将详细解释C#中Array、ArrayList和List之间的区别,并通过示例代码帮助理解这些...
Java集合框架(如ArrayList、LinkedList等)提供了更灵活的数据存储和操作方式,弥补了数组的不足。 8. **异常处理** 当试图访问超出数组界限的索引时,Java会抛出`ArrayIndexOutOfBoundsException`。因此,编写...
比较分析Vector、ArrayList和hashtable hashmap数据结构
Java集合框架提供了一些工具类,如`ArrayList`,可以方便地将数组转换为集合,反之亦然。这样,我们就可以利用集合提供的更丰富的操作,如添加、删除元素。 通过`com.bruceeckel.util`包中的工具类,我们可以更加...
这个问题是”在Java中怎样把数组转换为ArrayList?” Element[] array = {new Element(1),new Element(2),new Element(3)}; 1.流行也是被多人接受的答案 普遍也是被多人接受的答案如下: ArrayList...
自Java 1.5起,提供了`ArrayList`类作为动态数组,它可以自动调整大小: ```java ArrayList<Integer> list = new ArrayList(); list.add(1); list.add(2); // ... Collections.sort(list); // 对ArrayList...
- **集合框架**:`ArrayList`和`LinkedList`等集合类可以动态增长,提供了更多的功能,如添加、删除元素,但它们不是数组,而是基于数组实现的。 6. **去除数组中的重复元素**: - 从文件名"java 去除重复元素....
在处理大量数据时,Java集合框架中的`ArrayList`和`LinkedList`等集合类通常比数组更灵活,它们允许动态地添加、删除元素,并提供了更多的高级功能。但数组在访问速度上通常比集合类更快,因为集合类在底层可能使用...