Java 尝试按特定顺序将一维数组放入二维数组
我需要写一个函数来接收一维数组 例如:[2,5,3] 我需要创建以下2D数组: [2,-5,-3][2,5,-3][2,-5,3] 我的代码是:Java 尝试按特定顺序将一维数组放入二维数组,java,arrays,syntax,Java,Arrays,Syntax,我需要写一个函数来接收一维数组 例如:[2,5,3] 我需要创建以下2D数组: [2,-5,-3][2,5,-3][2,-5,3] 我的代码是: for (int i=0; i<vars.length; i++){ for (int j=0; j<vars.length; j++) tempVars[j] = vars[j]*(-1); tempVars[i] = tempVars[i]*(-1);
for (int i=0; i<vars.length; i++){
for (int j=0; j<vars.length; j++)
tempVars[j] = vars[j]*(-1);
tempVars[i] = tempVars[i]*(-1);
solution[i] = tempVars;
}
return solution ;
}
for(inti=0;iimportjava.util.*;
导入java.lang.*;
导入java.io.*;
表意文字
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
int n=4;
int a[]=新的int[n];
a[0]=2;
a[1]=5;
a[2]=3;
a[3]=6;
int a1[][]=过程(a);
对于(int i=0;i@OH GOD spider是对的。tempVars
数组被多次添加到solutions
,因此solutions
中填充了对同一数组的3个引用
使用:
for(inti=0;ivar数据=[2,3,5];
var计数器=data.length;
var finalArr=[];
对于(变量i=0;i
从外观上看,您只创建了一个数组tempVars
,您可以在循环中覆盖该数组,并多次将其添加到解决方案数组中。您需要为每个可能的结果创建一个数组,而不是一次又一次地使用相同的数组。您可以使用数组。toString(a1[i]);
获取包含数组值的字符串,而不是使用(int j=0;j)的
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
int n=4;
int a[]=new int[n];
a[0]=2;
a[1]=5;
a[2]=3;
a[3]=6;
int a1[][]=process(a);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
System.out.print(a1[i][j]+" ");
System.out.println();
}
}
public static int[][] process(int[] a)
{
int x=a.length;
int a1[][]=new int[x][x];
int i=0;
for(int b=0;b<x;b++)
{
for(int c=0;c<x;c++)
{
if(c==i)
a1[b][c]=a[c];
else
a1[b][c]=-1*a[c];
}
i++;
}
return a1;
}
}
for (int i=0; i<vars.length; i++){
for (int j=0; j<vars.length; j++) {
tempVars[j] = vars[j]*(-1);
}
tempVars[i] = tempVars[i]*(-1);
solution[i] = tempVars.clone();
}
var data = [2,3,5];
var counter = data.length;
var finalArr=[];
for (var i = 0; i < counter; i++) {
var tmpArr = [];
for (var j = 0; j < data.length; j++) {
if(i==j){
tmpArr.push(-data[j]);
}
else{
tmpArr.push(data[j]);
}
}
finalArr.push(tmpArr);
}
console.log(finalArr)