Vector 里面能不能用自定义类?

bios8086 2008-01-30 01:36:50
View Cview = Curdb.getView("Supplier");
View Bview = Curdb.getView("BA by leader");
Vector view =new Vector();
view.add(Cview);
view.add(Bview);
for (int i=0;i<2;i++)
{
Document doc = view.elementAt(i).getFirstDocument();
view.elementAt(i) 这样类型都不对了 ,请问因该怎么把自定义类型加入Vector里面 然后又怎么使用?
...全文
330 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang9494xz 2008-01-30
  • 打赏
  • 举报
回复
火龙果真是个热心人,顶!
xql80329 2008-01-30
  • 打赏
  • 举报
回复
顶顶
bios8086 2008-01-30
  • 打赏
  • 举报
回复
我去试试,您真是个热心人啊!
bios8086 2008-01-30
  • 打赏
  • 举报
回复
好的 谢谢您的帮助!
  • 打赏
  • 举报
回复
正则表达式是1.4中增加的,1.3里没有。

Java的类加载器不允许自行把包名设为java或javax开头的。就算把java包改为com包,
前面也说到了正则表达式的类依赖了底层的JRE的rt.jar中sun开头的包中的类,这些类
是没有源代码的,所以没有办法进行移植。
  • 打赏
  • 举报
回复
这个讨厌了,源代码是可以移植的,java.util.regex包下的java文件是有源代码的,
但是它也引用了rt.jar包中,以sun开头的包名,这些是JRE,这部分的源代码并没有
公开,只有.class,这些文件就算提取出来,在1.3版下肯定是不能使用的,所以不能
进行移植。

你可以使用其他的正则表达式库,如Apache的regexp

http://jakarta.apache.org/regexp/index.html
bios8086 2008-01-30
  • 打赏
  • 举报
回复
事情是这样的,我用Eclipse做了个小程序,里面用到了import java.util.regex.*; 这个包。
现在我想把这个程序移植到Lotus里面,但是Lotus里面的的JDK只有1.3版根本没有这个包,
所以我不知道怎么搞了。

IBM 是不提供让用户自行升级JDK的。

所以我想问问您有什么法子把这段程序移植过去?
我其实试过把我的程序做个包导入我在LOTUS里面的程序,但是不知道是不是我不会做包 还是怎么,就是没有用
  • 打赏
  • 举报
回复
不要叫我前辈啊,我也是新手。。。

有什么问题?只要我会的。
bios8086 2008-01-30
  • 打赏
  • 举报
回复
写死不好看啊 我就做个FOr循环 要不然程序很长的。
火龙果前辈 我能向您请教个问题吗?这个问题困扰我好久了,我不知道怎么解决!
  • 打赏
  • 举报
回复
呵呵,写错了。。。

现在能用了吗?
  • 打赏
  • 举报
回复
哦,只是两个的话,就直接写死就可以了。

现在用了吗?
bios8086 2008-01-30
  • 打赏
  • 举报
回复
火龙果 我不用这个是想让程序快点 这个view.size();毕竟还要运算下嘛 因为我才两个元素 所以没关系!
我是这样想的啊,嘿嘿! 您高手别见笑!
  • 打赏
  • 举报
回复
PS:那个for循环也不是很好,可以改为:for (int i = 0, k = view.size(); i < k; i++)
  • 打赏
  • 举报
回复
因为你没有采用泛型参数,取出来的时候是Object类型,需要强转一下。

Document doc = ((View)view.elementAt(i)).getFirstDocument();

如果是1.5或以上的版本,可以增加泛型参数,就不需要强转了。

Vector<View> view = new Vector<View>();
view.add(Cview);
view.add(Bview);
for (int i = 0; i < 2; i++)
{
Document doc = view.elementAt(i).getFirstDocument();
实现有两个 CVector 存放数据的自定义动态数组,采用一维动态数组存储矩阵数据 CMatrix 实现的矩阵 使用的时候包含#include "Matrix.h"就行 CMatrix的接口函数都在"Matrix.h"里面 CVector的接口函数在"Vector.h"里,"Matrix.h"里包含了"Vector.h" 具体用法与测试用例Main.cpp里有3个测试用例,分别是针对构造函数属性计算与运算符重载的 内已包含测试工程xp\vc6.0\上亲测通过,并经过BoundsChecker测试没有内存泄漏。有兴趣的童鞋可以下作参考。 注意: 1、下标都是从0开始,数学课上矩阵下标都是从1开始,但是工作后习惯0开始,矩阵M的第一个元素是M(0,0) 2、型定死为double,原来作业是模板,由于vc6对模版支持不好,另矩阵计算double比较理想、整型几乎只能作加减 提供了多种初始化方式,int[]、float[]、double[]均可构造初始化,或则先构造出CVector再由CVector初始化。 3、定义了一个最大允许误差#define permit_eof (1.0e-13),判断相等使用宏 #define EQUAL(a,b) ( ((b) - (a) < permit_eof)&&((a) - (b) < permit_eof) ? (TRUE) : (FALSE) ) 正常输出的时候绝对值小于permit_eof 的时候清零处理,想要指定精度输出请用PrintOut 鸣谢:CSDN上supermegaboy君的C/C++左值性精髓,读后略有所感,空闲时重构了下大学时的作业,着重区分了函数返回值的左右值 =================================================附录:接口函数========================================================================== 开放的接口: CVector //构造函数 CVector(); virtual ~CVector(); CVector(const size_t &nSize;); CVector(const CVector & vIn);//拷贝构造函数 CVector(const double* const pData,const size_t &nSize;); CVector(const float* const pData,const size_t &nSize;); CVector(const int* const pData,const size_t &nSize;); //公开的成员函数 double at(const size_t& uIndex)const;//作右值 BOOL push_back(const double& dbIn ); BOOL resize(const size_t& nSize); size_t size()const; //重载操作符 double& operator()(const UINT& uIndex);//重载()运算符,可作左值 //重载的运算符 double& operator()(const size_t& xr,const size_t& xc);//重载()运算符,可作左值 CVector& operator=(const CVector &);//重载=运算符 double operator*(const CVector & )const;//重载*运算符,两向量相乘 CVector operator*(const double α)const;//重载*运算符,向量乘以实数alpha CVector& operator*=(const double α);//重载*=算符,向量乘以实数alpha CVector operator+(const CVector & )const;//重载+运算符,向量加上向量 CVector& operator+=(const CVector & );//重载+=算符,向量加上向量 CVector operator-(const CVector & )const;//重载+运算符,向量加上向量 CVector& operator-=(const CVector & );//重载+=算符,向量加上向量 CVector operator+(const double α)const;//重载+运算符,向量加上实数alpna CVector& operator+=(const double α);//重载+=算符,向量加上实数alpha BOOL operator==(const CVector &)const;//重载==运算符 BOOL operator!=(const CVector &)const;//重载!=运算符 CMatrix //构造函数 CMatrix(); virtual ~CMatrix(); CMatrix(const CMatrix&);//拷贝构造函数 CMatrix(const size_t& n);//产生n阶单位阵 CMatrix(const size_t& nrow, const size_t& ncol);// CMatrix(const size_t& nrow, const size_t& ncol,const CVector& xdata);//产生nrow行,ncol列矩阵数据由xdata初始化 CMatrix(const size_t& nrow, const size_t& ncol,const double*const pData); CMatrix(const size_t& nrow, const size_t& ncol,const float* const pData); CMatrix(const size_t& nrow, const size_t& ncol,const int* const pData); //公开的成员函数 double At(const size_t& xr,const size_t& xc) const;//这个只能作为右值 CMatrix Trans()const;//A.T()返回矩阵A的转置副本 CVector diag()const;//矩阵上三角化后的对角向量//以此求矩阵的秩,矩阵的行列式等 double det()const;//求矩阵行列式 size_t rank()const;//矩阵的秩 CMatrix Inv()const;//求逆矩阵 inline BOOL IsNullMatrix()const{ return (BOOL)(m_nRowlen==0 || m_nCollen == 0);};//是否是空矩阵 BOOL IsSingularMatrix()const;//是否是奇异矩阵//即行列式为0 友函数 //科学计数法输出//想看较精确的数据的时候 friend void void PrintOut(const CMatrix& M,const size_t& nprecision = 6,std::ostream& os = std::cout); //产生的随机方阵,一般会是非异阵,供测试用 friend CMatrix randMatrix(const size_t &uSize;,int MAX);//随机产生n阶的方阵 //--------------------------重载部分-Overloaded Part---------------------------------- CMatrix& operator=(const CMatrix &);//重载=赋值运算符 double& operator()(size_t xr,size_t xc);//重载()运算符,A(i,j)即矩阵A的i行j列的元素, friend std::ostream & operator<<(std::ostream & ,const CMatrix &);//重载<<,可用cout输出矩阵 friend std::ostream & operator<<(std::ostream & ,const CVector&);//重载<<,可用cout输出向量 friend std::istream & operator>>(std::istream & CMatrix &);//重载>>,可用cin输入矩阵 CMatrix operator*(const double α)const;//重载*运算符,矩阵乘以实数alpha CVector operator*(const CVector &)const;//重载*运算符,矩阵乘以向量 CMatrix operator*(const CMatrix &)const;//重载*运算符,矩阵相乘 CMatrix& operator*=(const CMatrix &);//重载*=运算符 CMatrix operator^(const int α)const;//重载^幂运算符,A^alpha,alpha可以为负整数 CMatrix operator+(const CMatrix &)const;//重载+运算符,矩阵相加 CMatrix& operator+=(const CMatrix &);//重载+=运算符 CMatrix operator-(const CMatrix &)const;//重载- CMatrix& operator-=(const CMatrix &);//重载-=运算符 BOOL operator==(const CMatrix &)const;//重载==运算符,判断矩阵是否相等 BOOL operator!=(const CMatrix &)const;//重载!=运算符,判断矩阵是否不相等 CVector operator/(const CVector &)const;//重载/除运算符,向量左除矩阵,求Ax=b的x向量

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧