快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

澳门威尼人斯人最新网站:JAVA提高教程(8)认识List列表之Vector



Vector和ArrayList的最大年夜差别便是Vector的主要聚拢措施是线程同步的。

packagecollection.lession8;

importjava.util.Arrays;

importjava.util.Collection;

importjava.util.Enum澳门威尼人斯人最新网站eration;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Vector;

/**

*老紫竹JAVA前进教程(8)-熟识List列表之Vector.

*Vector和ArrayList的最大年夜差别便是

*Vector的主要聚拢措施是线程同步的.

*

*留意:如下代码绝大年夜部分和ArrayList代码完全相同

*只是把ArrayList调换为Vector

*

*@author老紫竹

*

*/

publicclassLession8{

publicstaticvoidmain(String[]args){

testNormal();

testSpecial();

//一个最常见的差错

testForProblem();

//测试Vector的特殊措施

testForVector();

}

publicstaticvoidtestForVector(){

//可以指定每次增添的容量尺寸

//初始化为100个,每次增添12个

Vectorv1=newVector(12,12);

v1.a澳门威尼人斯人最新网站dd(1);

v1.add(2.34);

v1.add("abc");

showList(v1);

//显示容量

System.out.println("capicity="+v1.capacity());

//可以复制数据到数组

Object[]anArray=newObject[v1.size()];

v1.copyInto(anArray);

System.out.println(Arrays.toString(anArray));

//可以设置尺寸

//采纳null进行位置添补

System.out.println("size="+v1.size());

v1.setSize(16);

System.out.println("size="+v1.size());

showList(v1);

//显示容量

//可以看到容量已经增添了

System.out.println("capicity="+v1.capacity());

//得到罗列

Enumerationen=v1.elements();

//下面是一些相关的操作,我就不一个一个的写了

//

//publicsynchronizedEfirstElement();

//publicsynchronizedElastElement();

//publicsynchronizedvoidsetElementAt(Eobj,intindex);

//publicsynchronizedvoidremoveElementAt(intindex);

//publicsynchronizedvoidinsertElementAt(Eobj,intindex);

//p澳门威尼人斯人最新网站ublicsynchronizedvoidaddElement(Eobj);

//publicsynchronizedbooleanremoveElement(Objectobj);

//publicsynchronizedvoidremoveAllElements();

}

publicstaticvoidtestNormal(){

//-------------------------------------------------------

//声明一个列表

//容许放入任何数据

//-------------------------------------------------------

Vectorlist=newVector();

/澳门威尼人斯人最新网站/放入整数

//当然你用newInteger(1)也可以

list.add(1);

//放入字符串

list.add("abc");

//放入浮点数

list.add(newFloat(1.11));

//add会将数据保存到列表的尾部

showList(list);//1,abc,1.11]

//下面我们在列表的头部增添数据

list.add(0,2);

list.add(0,"bcd");

list.add(0,newDouble(2.34));

//列表可以指定插入的位置

//0是头部第一个位置,以是数据都逐个放到最前面了

showList(list);//[2.34,bcd,2,1,abc,1.11]

//下面我们插入到我们盼望的任何位置

//当然不能越界,(0到list.size()-1)范围内才可以

list.add(1,3);

list.add(4,"xyz");

//数据被放到了精确的位置

showList(list);//[2.34,3,bcd,2,xyz,1,abc,1.11]

//-------------------------------------------------------

//我们有了数据,我们来测试读取数据

//-------------------------------------------------------

//我们可以经由过程指定索引的位置,来拿到我们盼望的数据

System.out.println(list.get(0));//2.34

System.out.println(list.get(4));//xyz

//-------------------------------------------------------

//测试是否存在某个数据

//-------------------------------------------------------

System.out.println(list.contains("xyz"));//true

//测试是否包孕一组数据

Collectionc=newVector();

c.add(1);

c.add(2);

System.out.println(list.containsAll(c));//true

c.add(3);

c.add(4);

//containsAll_1234=false

System.out.println(list.containsAll(c));//false

//-------------------------------------------------------

//查找某个数据所在的索引位置

//假如不存在,返回-1

//-------------------------------------------------------

System.out.println(list.indexOf(3));//1

System.out.println(list.indexOf("xyz"));//4

System.out.println(list.indexOf("abcd"));//-1

//-------------------------------------------------------

//测试删除数据

//请留意,

//假如你应用整数(int)数字,则默认调用的是remove(intindex);

//假如你用long,则会调用remove(Objectobj);

//以是假如你要删除整数,请应用remove(newInteger(int));

//-------------------------------------------------------

//删除索引为1的数据

list.remove(1);

//索引为1的数据被干掉落了

showList(list);//[2.34,bcd,2,xyz,1,abc,1.11]

//删除数字1和字符串abc

list.remove(newInteger(1));

list.remove("xyz");

showList(list);//[2.34,bcd,2,abc,1.11]

//-------------------------------------------------------

//迭代器的应用

//-------------------------------------------------------

Iteratorit=list.iterator();

while(it.hasNext()){

System.out.print(it.next()+"");//2.34bcd2abc1.11

}

System.out.println();

//-------------------------------------------------------

//转化为数组

//-------------------------------------------------------

Object[]objs=list.toArray();

for(Objectobj:objs){

System.out.print(obj+"");//2.34bcd2abc1.11

}

System.out.println();

}

publicstaticvoidtestSpecial(){

//-------------------------------------------------------

//测试重复和null

//------------------------------------澳门威尼人斯人最新网站-------------------

//

Listlist=newVector();

list.add(123);

list.add(456);

list.add(123);

list.add(456);

//数据容许重复

showList(list);//[123,456,123,456]

list.add(null);

list.add(789);

list.add(null);

list.add(999);

//容许放入多个null

showList(list);//[123,456,123,456,null,789,null,999]

//-------------------------------------------------------

//测试一下查找着末一次呈现的位置

//-------------------------------------------------------

System.out.println(list.indexOf(123));//0

System.out.println(list.lastIndexOf(123));//2

//-------------------------------------------------------

//转化为数组

//记得要转化为Inerger.

//-------------------------------------------------------

Integer[]nums=(Integer[])list.toArray(newInteger[0]);

//留意数据里面有null,以是轮回变量不要用int要用Integer

for(Integernum:nums){

System.out.print(num+"");//123456123456null789null999

}

System.out.println();

}

publicstaticvoidtestForProblem(){

//一些同伙在向轮回里向列表增添工具的时刻

//常常忘怀初始化,造成终极加入的都是同一个工具

Listlist=newVector();

MyObject2obj=newMyObject2();

for(inti=1;ilist2=newVector();

MyObject2obj2=null;

for(inti=1;i<=5;i++){

obj2=newMyObject2();

obj2.setName("Name"+i);

list2.add(obj2);

}

//里面的数据都是着末一个

showList(list2);//[Name1,Name2,Name3,Name4,Name5]

}

/**

*显示List里面的数据。

*

*@paramlist

*/

privatestaticvoidshowList(Listlist){

System.out.println(Arrays.toString(list.toArray()));

}

}

classMyObject2{

privateStringname;

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

/**

*重写toString措施,输出name

*/

publicStringtoString(){

returnname;

}

}

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: