vector和平常的数组类型有什么区别
Vector 类 提 供 了 实 现 可 增 长 数 组 的 功 能, 随 着 更 多 元 素 加 入 其 中, 数 组 变 的 更 大。 在 删 除 一 些 元 素 之 后, 数 组 变 小。
Vector 有 三 个 构 造 函 数,
public Vector(int initialCapacity,int capacityIncrement)
public Vector(int initialCapacity)
public Vector()
---- Vector 运 行 时 创 建 一 个 初 始 的 存 储 容 量initialCapacity, 存 储 容 量 是 以capacityIncrement 变 量 定 义 的 增 量 增 长。 初 始 的 存 储 容 量 和capacityIncrement 可 以 在Vector 的 构 造 函 数 中 定 义。 第 二 个 构 造 函 数 只 创 建 初 始 存 储 容 量。 第 三 个 构 造 函 数 既 不 指 定 初 始 的 存 储 容 量 也 不 指 定capacityIncrement。
---- Vector 类 提 供 的 访 问 方 法 支 持 类 似 数 组 运 算 和 与Vector 大 小 相 关 的 运 算。 类 似 数 组 的 运 算 允 许 向 量 中 增 加, 删 除 和 插 入 元 素。 它 们 也 允 许 测 试 矢 量 的 内 容 和 检 索 指 定 的 元 素, 与 大 小 相 关 的 运 算 允 许 判 定 字 节 大 小 和 矢 量 中 元 素 不 数 目。
---- 现 针 对 经 常 用 到 的 对 向 量 增, 删, 插 功 能 举 例 描 述:
addElement(Object obj)
---- 把 组 件 加 到 向 量 尾 部, 同 时 大 小 加1, 向 量 容 量 比 以 前 大1
insertElementAt(Object obj, int index)
---- 把 组 件 加 到 所 定 索 引 处, 此 后 的 内 容 向 后 移 动1 个 单 位
setElementAt(Object obj, int index)
---- 把 组 件 加 到 所 定 索 引 处, 此 处 的 内 容 被 代 替。
---- removeElement(Object obj) 把 向 量 中 含 有 本 组 件 内 容 移 走。
---- removeAllElements() 把 向 量 中 所 有 组 件 移 走, 向 量 大 小 为0。
---- 例 如:
import java.lang.System;
import java.util.Vector;
import java.util.Emumeration;
public class Avector{
public static void main(String args[])
{
0. Vector v=new Vector();
1. v.addElement("one");
2. addElement("two");
3. v.addElement("three");
4. v.insertElementAt("zero",0);
5. v.insertElementAt("oop",3);
6. v.setElementAt("three",3);
7. v.setElementAt("four",4);
8. v.removeAllElements();
}
}
Vector中的变化情况:
1. one 2. one 3. one 4. zero 5.zero 6. zero 7. zero
8.
two two one one one one
three two two two two
three oop three three
three three four
---- 另 外,Vector 在 参 数 传 递 中 发 挥 着 举 足 轻 重 的 作 用。
---- 在Applet 中 有 一 块 画 布(Canvas) 和 一 个(Panel), 而Panel 中 放 着 用 户 要 输 入 的 信 息, 根 据 这 些 信 息 把 参 数 传 递 到canvas 中, 这 时 在Java 中 用 一 个 接 口(Interface), 而 在 接 口 中 需 用 一 个Vector 去 传 递 这 些 参 数。 另 外, 在 一 个 类 向 另 一 个 类 参 数 传 递 就 可 以 用 这 种 方 法。
---- 例 如:
import java.util.Vector
interface codeselect{
Vector codeselect=new Vector();
}
显示数学信息
Vector(0)存入学生编号
Vector(1)存入学科
---- 在Panel 中 当 用 户 在 TextField 和Choice 中 选 择 自 己 所 要 求 的 内 容, 程 序 中
---- 通 过 事 件 响 应 把 值 传 到 向 量Vector 中。
---- 假 若 在Panel 类 中:
public void codepanel extends Panel{
public void init()
{
**.
TextField s=new TextField();
Choice c=new Choice();
c. addItem("语文");
c.addItem("数学");
c.addItem("政治");
add(s);
add (c);
**
}
public boolean handleEvent(Event event){
if(event.id==Event.ACTION_EVENT){
if(event.target.instanceof Textfield)
{
coderesult.setElementAt(s.getText(),0);
}
else if(event.target intanceof Choice)
{
coderesult.setElementAt(new Integer(c.getSelectedIndex()),1);
}
}
}
}
---- 这 时, 向 量 中 已 经 存 入 学 生 编 号 和 学 科 索 引 号(0 为 语 文,1 为 数 学,2 为 政 治)。
---- 而 在Canvas 中 得 到 此 值,
public class codecanvas extends Canvas{
public void code{
}
public void paint{
String str;
int t;
str=(String)coderesult.elementAt(0);
t=(new Integer(codeselect.elementAt(1).toString())).intValue();
if(t==0)
{
显示语文信息
}
else if(t==1)
{
显示数学信息
}
else if(t==2)
{
显示政治信息
}
}
}
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!