如何不用暴力破解数组

问题描述 投票:0回答:1

面试官向我提出了一个问题,我需要将数组转换为列表,并基本上打印相反的内容,我在 JAVA 17 中尝试了两种解决方案,你们能让我知道为什么会发生这些吗?有没有一种简单易行的方法来代替暴力方法?

int m[] = {1,2,3,4,5,6,7,8};

试用1 我尝试将数组转换为列表,反向使用 Collections

int m[] = {1,2,3,4,5,6,7,8};         
List<Integer> tmp = Arrays.asList(m);
error :- Incompatible types. Found: java.util.List<int[]>, required: java.util.List<java.lang.Integer>

试用2

int m[] = {1,2,3,4,5,6,7,8};
Collections.reverse(Arrays.asList(m));
for (int each : m)
System.out.print(" "+each);

这个打印

1 2 3 4 5 6 7 8
很奇怪(我假设Collections.reverse正在工作,但它将反转列表存储在堆中的其他位置而不是数组所在的位置,如果我错了,请纠正我)。

arrays list reversing
1个回答
0
投票

您正在声明一个

int
数组,而
List
元素的类型为
Integer

您可以通过声明一个

Integer
数组来解决这个问题: 整数 m[] = {1,2,3,4,5,6,7,8};

在试验 2 中,

Arrays.asList(m)
创建单个
List
元素的
int[]

© www.soinside.com 2019 - 2024. All rights reserved.