CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

Vector的问题

楼主zhaoxichao(小西)2002-01-28 18:53:30 在 Java / J2SE / 基础类 提问

自己定义的类:  
  public   class   ListItem   implements   Serializable  
  {  
    private   String   Name   =   "";  
    public   void   setName(String   Temp)  
    {  
    this.Name=Temp;  
    }  
    public   String   getName()  
    {  
    return   this.Name;  
    }  
   
    public   String   toString()  
    {  
        return   Name;  
    }  
  }  
  在1.java中在vector1中加入ListItem的一个对象  
  public   vector   a()  
  {  
          return   vector1;  
  }  
  在2.java中  
  vector   vector2=a();  
  ListItem   test=new   ListItem();  
  vector2.get()没有问题。  
  test=(ListItem)(vector2.get());转换类型出错误  
  why???????????????? 问题点数:100、回复次数:18Top

1 楼gdsean(摇滚java)回复于 2002-01-28 19:06:05 得分 0

代码好奇怪  
  vector和Vector是不同的  
  get方法有个int的index参数  
  vector1里面加入的是ListItem对象吗?  
  代码中没有看到vector1.addElement  
   
  Top

2 楼yanchang(笨笨)回复于 2002-01-28 19:06:23 得分 0

你定义的时候应将HashCode()顺手定义出来Top

3 楼zhaoxichao(小西)回复于 2002-01-28 19:42:45 得分 0

gdsean  
  你说的那些东西都做,我表述的时候没有表述清楚罢了Top

4 楼fxw(漂来)回复于 2002-01-28 19:52:12 得分 0

   
     
  我这样试了试,没有问题啊?:  
   
   
  //   ListItem.java  
  import   java.io.Serializable;  
  public   class   ListItem   implements   Serializable   {  
          private   String   Name   =   "";  
          public   void   setName(String   Temp)   {  
                  this.Name=Temp;  
          }  
          public   String   getName()   {  
                  return   this.Name;  
          }  
          public   String   toString()   {  
                  return   Name;  
          }  
  }  
   
  //   testtest.java  
  import   java.util.Vector;  
  public   class   testtest   {  
          public   static   Vector   a()   {  
                  Vector   v   =   new   Vector();  
                  v.add(new   ListItem());  
                  return   v;  
          }  
          public   static   void   main(String[]   args)   throws   Exception   {  
                  Vector   v   =   a();  
                  ListItem   s   =   (ListItem)v.get(0);  
                  System.out.println("s:   "   +   s);  
          }  
  }  
   
   
    Top

5 楼kuli(苦力)回复于 2002-01-29 09:31:10 得分 50

是否是在部署的时候出现问题,重复了ListItem类?Top

6 楼linger521(红色箭头)回复于 2002-01-29 09:43:35 得分 0

问题在于:  
  vector   vector2=a();  
  ListItem   test=new   ListItem();       //要去掉这句。  
  vector2.get()没有问题。  
  test=(ListItem)(vector2.get());转换类型出错误         //改为  
   
  /**********************************/  
  ListItem   test   =(ListItem)(vector2.get(i));  
  Top

7 楼weilinwu(特立独行)回复于 2002-01-29 10:11:32 得分 0

ListItem   test=new   ListItem();     //要去掉这句。  
  test=(ListItem)(vector2.get(i));转换类型出错误         //改为  
   
  /**********************************/  
  ListItem   test   =(ListItem)(vector2.get(i));  
   
   
  那位大哥能讲讲为什么要这样改吗?  
  Top

8 楼oldcat0076(jeff)回复于 2002-01-29 10:52:36 得分 0

你把1.java和2.java也全部贴出来Top

9 楼sharetop(九尾灵狐)回复于 2002-01-29 12:51:26 得分 50

 
  的确,我试过你的代码,没有问题。  
   
  ListItem   item   =   new   ListItem();  
  item=(ListItem)vector2.get(0);  
   
  可以,你注意一下,是否下标超界?是否在你的1.java和2.java中有什么问题,事实上不管是   ListItem   item=(ListItem)vector2.get(0);  
  或是分两行写,应该没问题的。  
   
  Top

10 楼kuli(苦力)回复于 2002-01-29 14:32:51 得分 0

谢谢大家,解决了,是打包是重复打包了ListItem类  
  Top

11 楼zhaoxichao(小西)回复于 2002-01-29 14:37:08 得分 0

给分了!!!  
  Top

12 楼zhaoxichao(小西)回复于 2002-01-29 14:38:16 得分 0

给分Top

13 楼zhaoxichao(小西)回复于 2002-01-29 14:42:51 得分 0

??????????????Top

14 楼sharetop(九尾灵狐)回复于 2002-01-30 12:46:10 得分 0

 
  点后面的管理给分,要给分就要全部给出不能留的。  
  Top

15 楼ChrisZhang(西楼明月)回复于 2002-01-30 19:55:07 得分 0

   
  Vector类在Java编程中的应用     作者:    
  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)  
  {  
  显示政治信息  
  }  
  }  
  }  
  文章来自:http://www.chinajavaworld.com/Top

16 楼zhaoxichao(小西)回复于 2002-01-31 10:01:09 得分 0

o   Top

17 楼gdsean(摇滚java)回复于 2002-01-31 10:13:18 得分 0

小西你那问题还没解决?  
  本来Vector里面放什么,你取出来在影射回去是  
  绝对没有问题的,问题出现在哪里你还得自己细心找找Top

18 楼gdsean(摇滚java)回复于 2002-01-31 11:09:07 得分 0

苦力跟小西什么关系Top

相关问题

  • Vector
  • vector<vector<string> > 有错误吗??
  • vector问题?
  • STL Vector 问题
  • vector的构造
  • support vector mahicnes
  • 关于vector
  • Vector的问题。
  • vector怎么用?
  • vector 的用法!

关键词

  • vector
  • 数学
  • 代码
  • 转换
  • listitem
  • 量
  • setelementat
  • codeselect
  • capacityincrement
  • 组

得分解答快速导航

  • 帖主:zhaoxichao
  • kuli
  • sharetop

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo