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,很方便。
分享到:
相关推荐
Arraylist与LinkedList异同点 - **线程安全性**:`ArrayList`和`LinkedList`都不保证线程安全。 - **底层数据结构**:`ArrayList`底层使用数组存储,而`LinkedList`底层使用双向循环链表。 - **插入和删除性能**:...
23.ArrayList与Vector的异同: - ArrayList和Vector都是基于数组实现,保持插入顺序。 - ArrayList非同步,性能优于同步的Vector。 - ArrayList提供更丰富的功能,如Collections工具类的支持,可轻松实现同步和只读...
77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private String name; public abstract boolean isStupidName(String name) {}}这有何错误? 18 79、public class ...
1. **ArrayList 和 Vector 的区别**:ArrayList 是基于动态数组的数据结构,而 Vector 是线程安全的ArrayList。两者的操作基本相同,但在多线程环境下,Vector的性能较差,因为每个操作都需要加锁。 2. **ArrayList...
11. Array是固定大小的原始类型数组,ArrayList是动态扩容的Object数组。 12. Queue中的`poll()`移除并返回头元素,`remove()`移除但抛出异常如果没有元素。 13. 同步集合如Vector、ConcurrentHashMap、...
- **常用类**:`String`, `Integer`, `ArrayList`, `HashMap`, `Date` - **常用包**:`java.lang`, `java.util`, `java.io`, `java.sql`, `javax.servlet` - **常用接口**:`Runnable`, `Comparable`, `Iterator`, `...
- Vector与ArrayList的性能对比。 - HashSet、TreeSet、LinkedHashSet等集合的特性。 - Map接口的实现类HashMap、TreeMap、LinkedHashMap等的区别。 #### 9. 输入输出流 **描述:** 输入输出流是Java进行文件读写...
- 类:`String`, `ArrayList`, `HashMap`, `Thread`, `File` - 包:`java.lang`, `java.util`, `java.io`, `java.net`, `javax.servlet` - 接口:`Comparable`, `Comparator`, `Runnable`, `Callable`, `List` ...
在C#和Java中,可以利用ArrayList或Vector来存储状态。 5. **字符串处理**:C语言中的字符串处理涉及KMP算法、Rabin-Karp算法等,用于字符串匹配;还有Manacher's Algorithm用于找出字符串中最长回文子串。在.NET...