这是我在网上找到的示例(我修改了它(使用返回数组的方法。正在传递的数组以相反的顺序迭代为新数组。
public class MultDim {
public static void main(String[] args)
{
double[] myList = {1.9, 2.9, 3.4, 3.5};
double[] returned = returnArr(myList);
for (double elem : returned) {
System.out.println(elem);
}
}
public static double[] returnArr(double[] list) {
double[] result = new double[list.length];
for (int i = 0, j = list.length - 1; i < list.length; i++, j--) {
result[j] = list[i];
}
return result;
}
}
我想要的是将传递给方法的数组元素传递给方法,使其在返回的数组中具有相同的顺序。这是我试图解决它的方式。但是 is 返回一个错误,即(list.length 的基元类型 int 没有字段 i(
public class MultDim {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
double[] returned = returnArr(myList);
for (double elem : returned) {
System.out.println(elem);
}
}
public static double[] returnArr(double[] list) {
double[] result = new double[list.length];
for (int i = 0, j = 0; j < list.length, i < list.length; i++, j++) {
result[j] = list[i];
}
return result;
}
}
我只是想知道我的概念错过了什么。
for
循环中的停止条件不能这样写
for(int i = 0, j = 0; j < list.length, i < list.length; i++, j++)
在这种情况下,一个简单的
for(int i = 0, j = 0; i < list.length; i++, j++)
足够好了
或只是:
for(int i=0; i<list.length; i++){
result[i] = list[i];
}
编译器错误是由于for
循环中的条件造成的。 j < list.length, i < list.length
是无效条件。如果你的意思是j < list.length
和i < list.length
,那么使用逻辑 AND 运算符 ( &&
(:
j < list.length && i < list.length
话虽如此,您不需要在循环中使用 i
和 j
,因为返回的数组与作为参数传递的数组具有相同的大小。所以你可以做:
for (int i = 0; i < list.length; i++) {
result[i] = list[i];
}
你应该看看for
需要如何构建
for (init; stop_condition; actions)
init
可以是java初始化的列表,用逗号(,
(分隔
stop_condition
需要是一个计算结果为布尔值的 Java 表达式,在您的情况下,它应该是:
j < list.length && i < list.length
动作可以是 Java 表达式的列表,用逗号 ( ,
( 分隔
你可以写更简单(因为 i 和 j 总是相同的(:
for(int i = 0;i < list.length; i++)
{
result[j] = list[i];
}
图像中的代码将反转数组字段但这是你的,会奏效的!
public class MultDim {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
double[] returned = returnArr(myList);
for (double elem : returned) {
System.out.println(elem);
}
}
public static double[] returnArr(double[] list) {
double[] result = new double[list.length];
for (int i = 0, j = 0; j < list.length && i < list.length; i++, j++) {
result[j] = list[i];
}
return result;
}
}
要解决实际问题 - 如何复制数组数据,您可能应该使用 Java 库提供的函数。
例:
final double[] copy1 = Arrays.copyOf(myList, myList.length);
其他选项包括System.arraycopy。