注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

对集合类型Vector类的认识  

2011-01-24 20:24:27|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

2011-01-24

public synchronized void copyInto(Object[] anArray) {

    System.arraycopy(elementData, 0, anArray, 0, elementCount);

}

方法:copyInto(Object[] anArray):将此向量的组件复制到指定的数组中。此向量中索引 k 处的项将复制到 anArray 的组件 k 中。

显然:是调用了System类的方法:

public static native void arraycopy(Object src,  int  srcPos,

                                        Object dest, int destPos,

                                        int length);

src:源数组;srcPos:源数组中的起始位置;dest:目标数组;destPos:目标数组中的起始位置;length:要复制的数组元素的数量。

说明:对于这里所说的复制,其实是将dest中的某个元素用src中的元素替换,并不能做到dest中的内容不变,而把src中的元素拷贝到dest中。

eg..

        String[] src = {"A","B"};

        String[] dest = {"C","D","F","G"};

        System.arraycopy(src, 0, dest, 0, 1);

        for(int i = 0; i < dest.length; i ++)

        {

            System.out.print(dest[i] + ", ");

        }

 

        System.arraycopy(src, 0, dest, 0, 1);

显示的内容为:A, D, F, G,

        System.arraycopy(src, 0, dest, 0, 2);

显示的内容为:A, B, F, G,

        System.arraycopy(src, 1, dest, 0, 1);

显示的内容为:B, D, F, G,

        System.arraycopy(src, 0, dest, 2, 2);

显示的内容为:C, D, A, B,

注意数组容量(长度)的把握。

因此Vector类中的copyInto(Object[] anArray):是将Vector中的元素复制到anArray数组中,所以anArray的长度必须是大于等于Vectorsize的。

 

public synchronized boolean isEmpty() {

return elementCount == 0;

}

Vector类中的isEmpty()方法:判断Vector是否为空。其实方法挺简单的,关键是注意代码的书写。

 

public Enumeration<E> elements() {

    return new Enumeration<E>() {

        int count = 0;

 

        public boolean hasMoreElements() {

        return count < elementCount;

        }

 

        public E nextElement() {

        synchronized (Vector.this) {

            if (count < elementCount) {

            return (E)elementData[count++];

            }

        }

        throw new NoSuchElementException("Vector Enumeration");

        }

    };

}

Vector类中的elements()方法: 返回此向量的组件的枚举。返回的 Enumeration 对象将生成此向量中的所有项。生成的第一项为索引 0 处的项,然后是索引 1 处的项,依此类推。

通过程序我们知道:其实就是重写了Enumeration接口。

Enumeration接口定义如下:

public interface Enumeration<E> {

 

    boolean hasMoreElements();

 

    E nextElement();

}

 

总结:对于Vector类来说,其实很多操作实际上是对System类的

public static native void arraycopy(Object src,  int  srcPos,

                                        Object dest, int destPos,

                                        int length);

方法的调用,还有Vector是线程安全的。

  评论这张
 
阅读(398)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017