CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 扩展类

自己编写集合对象,怎么做?

楼主5413tianyu(天下)2005-03-02 10:49:11 在 Java / J2SE / 扩展类 提问

自己编写集合对象,怎么做?  
  我想做一个集合对象books,它的元素是book对象,怎样编写?  
  要继承什么对象?怎么实现foreach{book   in   books},next()等方法.  
  问题点数:100、回复次数:16Top

1 楼BasaraTracy(不屈斗志)回复于 2005-03-02 12:12:18 得分 0

帮你顶Top

2 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-03-02 12:20:53 得分 0

实现List或者Set接口Top

3 楼vgvg(上帝在关闭一扇窗的同时,在别处打开了一扇门。可这扇门迟迟不开,我只好破门而入!)回复于 2005-03-02 12:22:19 得分 0

class   Books{  
  private   Vector   books;  
   
  public   Books(){  
  books=new   Vector();  
  }  
   
  public   void   add(book   b){  
  books.add(b);  
  }  
   
  ...  
  ...  
  ...  
   
  }Top

4 楼5413tianyu(天下)回复于 2005-03-02 14:06:27 得分 0

我希望能够使用foreach(book   in   books),如何实现?  
  Top

5 楼wjh0088()回复于 2005-03-02 14:42:41 得分 0

顶一下吧Top

6 楼chinajava(chinajava)回复于 2005-03-02 15:20:30 得分 100

import   java.util.Iterator;  
  import   java.util.Vector;  
  import   java.util.NoSuchElementException;  
  import   java.lang.UnsupportedOperationException;  
   
  public   class   Vecterator   implements   Iterator  
  {  
            Vector   iteratee;  
            int   count;  
   
            public   Vecterator(Vector   v)  
            {  
                      iteratee   =   v;  
                      count   =   0;  
            }  
   
            public   boolean   hasNext()  
            {  
                      return   count   <   iteratee.size();  
            }  
   
            public   Object   next()  
            {  
                      synchronized   (iteratee)  
                      {  
                                if   (count   <   iteratee.size())  
                                {  
                                          return   iteratee.elementAt(count++);  
                                }  
                      }  
            throw   new   NoSuchElementException("VectorIterator");  
            }  
   
            public   void   remove()  
            {  
  throw   new   UnsupportedOperationException();  
            }  
  }  
  Top

7 楼congbailing_914(静下心来学习《java编程思想》,打好基础!不玩了~!)回复于 2005-03-03 16:50:53 得分 0

顶!Top

8 楼maxchou(草蜢仔)回复于 2005-03-06 15:49:50 得分 0

基本同意    chinajava(chinajava)的做法Top

9 楼tigerlg(tigerlg)回复于 2005-03-07 14:31:24 得分 0

看一看jdk   的src   你就明白了Top

10 楼tim90(Piece of my wish)回复于 2005-03-09 15:59:07 得分 0

chinajava里面再加上下面的就更完整了  
   
  public   void   add(book   b){  
  books.add(b);  
  }  
  Top

11 楼tangqiuzheng(恭喜发财万事如意)回复于 2005-03-09 16:22:55 得分 0

java.util.Vector   books   =new   java.util.Vector();  
                          Book   book1,book2;  
                          books.addElement(book1);  
                          books.addElement(book2);  
                          java.util.Enumeration   e=books.elements();  
                          while(e.hasMoreElements())  
                          {  
                                  Book   a=e.nextElement();  
                                  //a.......  
                          }  
  Top

12 楼tangqiuzheng(恭喜发财万事如意)回复于 2005-03-09 16:25:14 得分 0

上面的WHILE中,第一次循环时,a=book1;第二次时,a=book2,第三次时,while条件为假,跳出循环.Top

13 楼yinwenjie(java入门中)回复于 2005-03-11 11:16:40 得分 0

方法太多了,继承、实现、聚合都可以.但是如果叫我自己写,会优先选择聚合的Top

14 楼henryqqq(不再如此郁闷)回复于 2005-03-11 15:00:30 得分 0

仿照ArrayList进行实现,将所有输入,输出参数的类型   Object   改为   Book   就可以了,Top

15 楼qqqkingppp(岚枫)回复于 2005-03-13 13:02:30 得分 0

自己实现add(),remove()方法Top

16 楼5413tianyu(天下)回复于 2005-03-28 10:45:06 得分 0

谢谢大家,chinajava(chinajava)的方法非常好,已经实现了我的要求.Top

相关问题

  • 在vba的编写过程中无法在excel中调用word等其他对象,怎么办?(顶者有分)
  • 如果在VB6中用PRITER对象来编写代码的,怎么在VBNET中移植呢?????
  • Workbook 对象与Workbooks 集合对象有什么区别?
  • 怎么创建集合类?
  • castor怎么处理集合
  • 怎么编写帮助
  • 怎么编写触发器?
  • 怎么宏的编写
  • 这个SHELL怎么编写
  • 怎么编写选中线

关键词

  • vector
  • 集合
  • 编写
  • 对象
  • iteratee
  • vecterator
  • books
  • foreach
  • util
  • 实现

得分解答快速导航

  • 帖主:5413tianyu
  • chinajava

相关链接

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

广告也精彩

反馈

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