请问,如何把一些不同的对象存储在同一个位置,谢谢

corn8888 2012-08-02 10:20:13
请问,如何把一些不同的对象存储在同一个位置,并可遍历里面的对象
...全文
347 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
风火轮 2012-08-14
  • 打赏
  • 举报
回复
如果 你用泛性 那么集合里存储的对象就确定了 就像List<String> 只能存String类型 如果你想存不同对象
那么就不要指定泛型

看如下代码 A是一个对象




List list=new ArrayList();

list.add("jjj");
list.add(5);
list.add(new A(1,"j"));

for(Object o:list){
if(o instanceof A){
A a=(A)o;
System.out.println(a.getName());
}else if(o instanceof Integer){
System.out.println(o);
}else if(o instanceof String){
System.out.println(o);
}

}


csugzhiyang 2012-08-14
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]
请问楼上,是每个对象都建一个数组或链表,还是所有不同的对象用一个数组或链表?
[/Quote]
是所有不同的对象用一个数组或链表
为啥呢 2012-08-14
  • 打赏
  • 举报
回复
在集合中用接口或基类作为元素类型存储,并把那些你要存进来的东西作为接口的实现类型或基类的派生类型。
如:Set<Object>set;这个set里面可以放任何东西
corn8888 2012-08-10
  • 打赏
  • 举报
回复
我感觉这个问题应该不难解决吧,只是我不会
anod 2012-08-10
  • 打赏
  • 举报
回复
用对象容器呀。有好多种,都在java.uitl包里。
ibysh 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
估计楼主的意思是:请问,如何把一些不同的对象存储在同一个【集合】,并可遍历里面的对象。
用Set或List好了,对应实现类HashSet或ArryList。
但是原则上说不建议你放入不同的对象,因为遍历的时候你无法知道拿出的是什么东西,处理起来很麻烦。
当然如果你的对象有唯一属性的话,也可以放到Map里,HashMap。
取出的时候可以根据key确定对象类型。但估计代码还是很 bad sm……
[/Quote]

对的
zqfddqr 2012-08-10
  • 打赏
  • 举报
回复
你这个想法有点 面向对象数据库的感觉 描述有点模糊 建议你到实际编程中去体会一下
corn8888 2012-08-09
  • 打赏
  • 举报
回复
请问楼上,是每个对象都建一个数组或链表,还是所有不同的对象用一个数组或链表?
csugzhiyang 2012-08-09
  • 打赏
  • 举报
回复
不知道LZ这么做是为什么?这样看行不行。给这些对象建一个共同的接口,然后就用接口类型的数组或链表去保存那些对象。
corn8888 2012-08-09
  • 打赏
  • 举报
回复
不好意思,各位,抱歉

我的意思是把一些不同的对象的“引用”存储在同一个数组、链表等数据结构里,并可遍历里面的对象
sffx123 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

如果存入泛型数组,遍历的时候,可以知道每个元素的类型吗?
[/Quote]你定义泛型的时候就约定了这个list只能存储规定的类型比如List<String>就只能存储String类型
桃园闲人 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
请问,如何把一些不同的对象存储在同一个位置,并可遍历里面的对象
[/Quote]
不知道你说的同一个位置是这的什么?可以列举出你的代码。
zqfddqr 2012-08-06
  • 打赏
  • 举报
回复
这个有点偏 非要实现的话 反射确实可以 但是反射开销会加大 而且也没有这么做的必要
如果一个容器要存一类区别不大的东西 可以让他们继承同一个类 以这个父类的类型来做容器 或者用接口.
老紫竹 2012-08-05
  • 打赏
  • 举报
回复
泛型,在编译的时候,会强制检查你的代码,保证存取的都是指定的类(或其子类)。
所以,如果你用了泛型,就必须遵循这个规定。
aotian16 2012-08-05
  • 打赏
  • 举报
回复
可以用instanceof判断类型
corn8888 2012-08-04
  • 打赏
  • 举报
回复
楼上为什么要这么说?
程序员一灯 2012-08-04
  • 打赏
  • 举报
回复
因为坑爹的楼主,
浪费好长时间。
wklken 2012-08-04
  • 打赏
  • 举报
回复
反射吧

不过为何有这种需求?有的话感觉应该是设计不合理~~
宁波朱超 2012-08-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
请问,如何把一些不同的对象存储在同一个位置,并可遍历里面的对象
[/Quote]

留言已阅,我不明白你的问题是怎么回事。。。
dengsilinming 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

如果存入泛型数组,遍历的时候,可以知道每个元素的类型吗?
[/Quote]
用反射应该能够做到,可以参考http://blog.csdn.net/canchew/article/details/7545363http://www.linuxidc.com/Linux/2012-06/62371.htm
加载更多回复(7)

62,614

社区成员

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

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