long数组转list的问题,求助

北风之神096 2020-10-26 03:23:36

public static void main(String[] args)
{
long[] arr = new long[]{11,41,31,31};
//List<Long> list = Longs.asList(arr);
//List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
List list = Arrays.asList(arr);
System.out.println(list.get(0));
}


期望输出第一个元素11,但实际输出的是 [J@1c4af82c,我知道List只能添加包装类型或引用类型,需要怎么做才能输出11呢?
求大神答疑解惑,谢谢!
...全文
5169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lulhs 2020-10-27
  • 打赏
  • 举报
回复

public static void main(String[] args) {
	List<Long> list = new ArrayList<Long>();
	long[] arr = new long[]{11,41,31,31};
	for (long l : arr) {
		list.add(l);
	}
	System.out.println(list.get(0));
}
想那么多干嘛!
北风之神096 2020-10-27
  • 打赏
  • 举报
回复
引用 5 楼 一只努力飞翔的鱼 的回复:
long[] arr = new long[]{11,41,31,31};
        //List<Long> list = Longs.asList(arr);
        //List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
        List<long[]> list = Arrays.asList(arr);
        System.out.println(list.get(0)[0]);
哦,list放进去的是数组
dkwuxiang 2020-10-26
  • 打赏
  • 举报
回复
List 不泛型,你看.get() 得返回是Object, System.out 调用得父类Object 得toString,输出得就是内存地址;
  • 打赏
  • 举报
回复
引用 2 楼 景初JingChu丶 的回复:
可以参考

Long[] arr = {Long.valueOf(11), Long.valueOf(41), Long.valueOf(31), Long.valueOf(31)};
        List<Long> list = Arrays.asList(arr);

        System.out.println(arr[0]);
        System.out.println(list.get(0));
原因是因为你的数组里的数据没有识别,然后就把整个list作为一个数据存储上去了,所以才导致输出的是引用
  • 打赏
  • 举报
回复
long[] arr = new long[]{11,41,31,31};
        //List<Long> list = Longs.asList(arr);
        //List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
        List<long[]> list = Arrays.asList(arr);
        System.out.println(list.get(0)[0]);
Opticalproperti 2020-10-26
  • 打赏
  • 举报
回复
引用 1 楼 Opticalproperti 的回复:
.toString( );
说错了哈哈 java8 可以用这个方式 List<long> list = Arrays.stream(arr).boxed().collect(Collectors.toList()); List<Long> longs = Arrays.asList(ArrayUtils.toObject(arr);
qq_39936465 2020-10-26
  • 打赏
  • 举报
回复
引用 楼主 北风之神096 的回复:

public static void main(String[] args)
    {
        long[] arr = new long[]{11,41,31,31};
        //List<Long> list = Longs.asList(arr);
        //List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
        List list = Arrays.asList(arr);
        System.out.println(list.get(0));
    }
期望输出第一个元素11,但实际输出的是 [J@1c4af82c,我知道List只能添加包装类型或引用类型,需要怎么做才能输出11呢? 求大神答疑解惑,谢谢!

public static void main(String[] args) {
		Long[] arr = new Long[]{11l, 41l, 31l, 31l};
		List list = Arrays.asList(arr);
		System.out.println(list.get(0));
	}
  • 打赏
  • 举报
回复
可以参考

Long[] arr = {Long.valueOf(11), Long.valueOf(41), Long.valueOf(31), Long.valueOf(31)};
        List<Long> list = Arrays.asList(arr);

        System.out.println(arr[0]);
        System.out.println(list.get(0));
Opticalproperti 2020-10-26
  • 打赏
  • 举报
回复
.toString( );

62,614

社区成员

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

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