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,很方便。(
分享到:
相关推荐
本压缩包文件涵盖了四个关键概念:树(Tree)、动态数组(Dynamic Array)、哈希映射(HashMap)以及拼图算法(Puzzle Algorithm)。接下来,我们将详细探讨这些知识点。 1. **树(Tree)**: 树是一种非线性的...
Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...
Java集合容器概述、集合框架、List、Set、Map接口、Iterator、ArrayList、LinkedList、Vector、HashSet、HashMap、Queue、BlockingQueue、ConcurrentHashMap等。 Java 集合容器概述 Java 集合容器是用于存储数据...
6. List>Array 使用 toArray 方法,Array>List 使用 Arrays.asList(array) 方法,由于它是固定的,不固定的可以使用 new ArrayList(Arrays.asList(array))。 二、Map 相关知识点 1. 常用的 Map 集合有 HashMap、...
1. List接口:ArrayList、LinkedList和Vector是List接口的实现。ArrayList基于数组实现,适合随机访问,插入和删除操作相对较慢;LinkedList基于双向链表,插入和删除快,但随机访问慢;Vector与ArrayList相似,但在...
**HashMap 和 Hashtable 的区别**: - **线程安全性**:Hashtable 是线程安全的,而 HashMap 不是。在多线程环境中,若需要线程安全,可以选择 ConcurrentHashMap。 - **空值支持**:HashMap 允许键值为 null,而 ...
Array Collection Collections List ArrayList LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private ...
Array Collection Collections List ArrayList LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private ...
- 使用`Arrays.asList(array)`将数组转为`List`。 - 使用`list.toArray()`将`List`转为数组。 #### ArrayList与LinkedList的区别 - **ArrayList**:基于数组实现,随机访问快,增删慢。 - **LinkedList**:基于链表...
### Java中Set、Map、List、Table、Vector、Array的比较总结 #### 一、概述 在Java编程语言中,集合框架(Collection Framework)提供了一系列用于处理数据的接口和类,其中包括Set、List、Map等核心接口以及它们...
3. **List、Set、Map之间的区别?** - List是有序集合,元素可以通过索引访问,允许重复元素。 - Set无序集合,不保证元素顺序,不允许重复元素。 - Map是键值对集合,键唯一,值可以重复。 4. **HashMap和...
- `Vector`:线程安全的`List`实现。 - `Stack`:基于`Vector`的栈实现,线程安全。 - **线程不安全的集合**: - `HashMap` - `ArrayList` - `LinkedList` - `HashSet` - `TreeSet` - `TreeMap` #### 3. ...
66、HashMap和Hashtable的区别 17 67、说出ArrayList,Vector, LinkedList的存储性能和特性 17 68、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 17 69、文件读写的...
Array Collection Collections List ArrayList LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private ...
String[] array = vector.toArray(new String[0]); for (String s : array) { System.out.println(s); } ``` 2. **字符串开头与结尾的判断**: 要检查字符串是否以特定字符串开头或结尾,可以使用`startsWith()`...
List接口允许有相同元素,例如ArrayList、LinkList、Vector等。ArrayList是实现可变大小的数组,允许所有的元素,不是同步的,也就是没有同步方法。LinkList允许null元素,通常在首部或者尾部操作,所以常被使用做...
根据给定文件的信息来看,这份材料似乎偏离了“数据挖掘十大经典算法”的主题,反而讨论了编程中的数据结构如数组(Array)、向量(Vector)、动态数组(ArrayList)、哈希表(HashMap)以及链表(List)等内容。不过,既然您...