JAVA关于list object
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA关于list object相关的知识,希望对你有一定的参考价值。
我有很多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作为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开始) 参考技术A 将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进行结构上的变更比较好,比如翻转列表,写个这样的泛型方法,可以翻转所有类型的列表... 参考技术B 问题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
参考技术C 这个一定要强制类型转换才能用啊,呵呵
for(int i=0; i<st2.size(); i++)
(?)st2.get(i) // ? 表示你的List的类型
参考技术D for(int i=0;i<list.size();i++)
Map m=(Map)list.get(i);
String user=m.get("user").toString;//如果你的list存的有User的话
我们如何在 Java 中将 Object 数组转换为 List? [复制]
【中文标题】我们如何在 Java 中将 Object 数组转换为 List? [复制]【英文标题】:How can we convert an array of Object to List in Java? [duplicate] 【发布时间】:2015-09-16 07:21:32 【问题描述】:例如:Object[] arrObject1 = new Object[]true, true, false, true, false
Object[] arrObject2 = new Object[]1, 2, 3, 4, 5
我们如何将Object[]
转换为List
?
【问题讨论】:
【参考方案1】:使用List<Object> list = Arrays.asList(array);
【讨论】:
以上是关于JAVA关于list object的主要内容,如果未能解决你的问题,请参考以下文章