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后 我连强制转换的类型对象也不知道 怎么办啊? 展开
比如有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后 我连强制转换的类型对象也不知道 怎么办啊? 展开
8个回答
展开全部
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开始)
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开始)
展开全部
将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进行结构上的变更比较好,比如翻转列表,写个这样的泛型方法,可以翻转所有类型的列表...
改成这样:
//定义一个泛型方法,可以循环任何泛型列表
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进行结构上的变更比较好,比如翻转列表,写个这样的泛型方法,可以翻转所有类型的列表...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题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{
}
问题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{
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个一定要强制类型转换才能用啊,呵呵
for(int i=0; i<st2.size(); i++)
{
(?)st2.get(i) // ? 表示你的List的类型
}
for(int i=0; i<st2.size(); i++)
{
(?)st2.get(i) // ? 表示你的List的类型
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i=0;i<list.size();i++){
Map m=(Map)list.get(i);
String user=m.get("user").toString;//如果你的list存的有User的话
}
Map m=(Map)list.get(i);
String user=m.get("user").toString;//如果你的list存的有User的话
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询