JAVA关于list object 200

我有很多list需要做处理。比如有List<A>a、List<B>b方法是publicstaticList<?>method(List<?>list){//这里做一些处理... 我有很多list需要做处理。
比如有List<A> a、List<B> b
方法是
public static List<?> method(List<?> list) {
//这里做一些处理 然后返回list
return list;
}

现在,我得到返回的这个list

List<?> st=new LinkedList<A>();
st2=method(st)
那我怎么输出这个st2里的内容呢?

0 0 或者我哪里写的不好 帮我修改下 谢谢大侠啦。
那么得到list后 我连强制转换的类型对象也不知道 怎么办啊?
展开
 我来答
ocean_papa
2010-05-10
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
3楼的说的对~
list作为Java的一个存储结构,在解决不定长、无序的数据时十分好用。JDK1.5以前,不需要定义list里面的object的类型,但是JDK1.6以后,就必须写list<string>类似的。
从list中取数据,用到 List a = new LinkList(); a.get(i)
i为想要取出数据在list中的位置。这样虽然是取出来了,但还是不能用,因为编译器不知道取出来的数据是什么类型的,所以必须要转类,比如存进一个Student的类 Student stu =(Student)a.get(0)取出第一个元素(从0开始)
百度网友217a1b5
2010-05-11 · TA获得超过360个赞
知道小有建树答主
回答量:1415
采纳率:0%
帮助的人:431万
展开全部
将public static List<?> method(List<?> list)
改成这样:
//定义一个泛型方法,可以循环任何泛型列表
public static List<T> method(List<T> list) {

foreach(T obj : list){
System.out.println(obj.toString());
}
return list;
}
这样调用
//你必须指定一个明确的类型
List<A> st=new LinkedList<A>();
//调用泛型方法
st = method<List<A>>(st);
其实我是照着C#来回答的...Java和C#差不多,这样写应该没什么问题。事实上,你想在方法中操作你集合中具体实例的值的话,比如list[0].Name,那么你需要把T obj变成A obj,就是说要强转,但是这样做的话就失去了泛型的意义,在泛型方法中,只对list进行结构上的变更比较好,比如翻转列表,写个这样的泛型方法,可以翻转所有类型的列表...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bellCliff
2010-05-12 · TA获得超过650个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:610万
展开全部
问题1:打印输出的问题,如果你的A和B提供了toString方法,你可以试试直接打印st2

问题2:转换list在java中有专门的函数提供类似功能,见代码
public static void main(String[] args) {
List<A> st = new ArrayList<A>();
List<B> st2 = null;
Collections.copy(st2, st);
}

private static class A extends B{

}

private static class B{

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友78db994b1
2010-05-10 · 超过13用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:42.2万
展开全部
这个一定要强制类型转换才能用啊,呵呵
for(int i=0; i<st2.size(); i++)
{
(?)st2.get(i) // ? 表示你的List的类型
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2fdeda9
2010-05-11 · TA获得超过632个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:427万
展开全部
for(int i=0;i<list.size();i++){
Map m=(Map)list.get(i);
String user=m.get("user").toString;//如果你的list存的有User的话
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式