long[] IDs = {1,2,5,2,2,6,5,2,3,5,4,2};
List list = Arrays.asList(IDs);
for(Object i: list)
{
long l = i; // 这里显示我需要转换成long i = (Long)i;我需要的是基础类型的long
请问有什么方法?
List list = Arrays.asList(IDs);
for(Object i: list)
{
long l = i; // 这里显示我需要转换成long i = (Long)i;我需要的是基础类型的long
请问有什么方法?
List list = Arrays.asList(IDs); // 这里显示建议我写成List<long[]>list其实变成了long[][] = {{1,2,5,2,2,6,5,2,3,5,4,2}}怎样才能使list里面是一维的long数组
for(Long i: list)
其实楼主你那样转化一下就可以了long i = (Long)i;不知道你还想得到啥
而且Java的autobox可以允许包装类型和基本类型自动转换
出来的l就已经是基本类型的long了
public static void main(String[] args) {
// List<Long> list=new ArrayList<Long>();
long[] IDs = { 1, 2, 5, 2, 2, 6, 5, 2, 3, 5, 4, 2 };
List list = Arrays.asList(IDs); //此时list对象中其实只有一个long型数组对象
System.out.println("size="+list.size()); //得到size=1
for (Object i : list) { //所以此处遍历没啥意义
//Long l = (Long)i; // 这里显示我需要转换成long i = (Long)i; (此处强转异常)
long[] l=(long[])i; //进行正确的强制类型转换
int len=l.length;;
for(int k=0;k<len;k++) //此时遍历打印
System.out.print(l[k]+" ");
} }
List<long[]> list = Arrays.asList(IDs);
for(long[] i : list) {
for(long value : i){
System.out.print(value+" ");
}
System.out.println();
}
2 就像楼上高人说的从se5就有autobox了
所以建议这样--就是定义时每个数字后面都加上一个l或L
Long[] IDs = {1l,2l,5l,2l,2l,6l,5l,2l,3l,5l,4l,2l};
List<Long> list = Arrays.asList(IDs);
for(long i: list)
{
long l = i;
System.out.println("l-->"+l);
}
通过对Arrays类的源码的通读,发现其有一个静态的泛型方法,声明如下:
public static List<T> asList(T...)
由此可知,形参中T...表示的是一个变长数组(即参数类型T的变量可以是任意个)
则你调用此方法中,T则为一个long[],因此此时的一个T便指一个long[],而非
long[]中的每一个元素。
因此返回值中的T也是指一个long[],而不是long[]中的多个元素。
所以,返回的只是存放了一个long[]数据类型的list集合对象。
这里看错你用的方法了 ,直接像上面说的 用泛型List<long>就可以了
这里看错你用的方法了 ,直接像上面说的 用泛型List<long>就可以了
List<Long> list = Arrays.asList(IDs); 是编译不通的。。只能是List<long[]>,只写List默认的也是List<long[]>。。
哪我怎样才能取得一个一维的list啊。。
多谢,4楼我已经看过了
可是和我用的不一样我需要的是一个long[]转换的list
这个list我通过判断进行一定的删除和排序后,再输出成另外的long[]请问有什么好的建议么?
long[] IDs = { 1, 2, 5, 2, 2, 6, 5, 2, 3, 5, 4, 2 };
List<Long> list = new ArrayList<Long>();
for(long i : IDs){
list.add(i); //逐个添加long型元素
}
for (Long i : list) {
Long l = i; // 这里显示我需要转换成long i = (Long)i;
System.out.print(l+" ");
} }
List<Long>
你懂吧??