Java 在方法中作为参数传递数组

Java 在方法中作为参数传递数组,java,arrays,arraylist,chess,Java,Arrays,Arraylist,Chess,我正在尝试用java编写一个简单的国际象棋程序。有一个数组列表,存储骑士可以做的所有动作,每个动作都是一个整数[]。数组中的第一项是行,第二项是列。看起来是这样的: ArrayList<Integer[]> moves = new ArrayList<>(); moves.add({row - 2, col - 1}); moves.add({row - 1, col - 2}); moves.add({row - 2, col + 1}); moves.add({row

我正在尝试用java编写一个简单的国际象棋程序。有一个数组列表,存储骑士可以做的所有动作,每个动作都是一个
整数[]
。数组中的第一项是行,第二项是列。看起来是这样的:

ArrayList<Integer[]> moves = new ArrayList<>();
moves.add({row - 2, col - 1});
moves.add({row - 1, col - 2});
moves.add({row - 2, col + 1});
moves.add({row - 1, col + 2});
moves.add({row + 1, col - 2});
moves.add({row + 2, col - 1});
moves.add({row + 2, col + 1});
moves.add({row + 1, col + 2});
ArrayList moves=new ArrayList();
添加({row-2,col-1});
添加({row-1,col-2});
add({row-2,col+1});
添加({row-1,col+2});
添加({row+1,col-2});
添加({row+2,col-1});
添加({row+2,col+1});
moves.add({row+1,col+2});
出于某种原因,当我尝试运行代码时,我会遇到大约100个错误,包括
表达式的非法开始
预期的
,以及
非语句


我不确定是什么导致了这个问题。Java不允许在ArrayList中存储数组,或者特定语法有问题吗?

您始终需要初始化数组才能正常工作

ArrayList<Integer[]> moves = new ArrayList<>();
moves.add(new Integer[]{ 2, 1});
ArrayList moves=new ArrayList();
add(新整数[]{2,1});

始终需要初始化阵列才能使其工作

ArrayList<Integer[]> moves = new ArrayList<>();
moves.add(new Integer[]{ 2, 1});
ArrayList moves=new ArrayList();
add(新整数[]{2,1});

如果我使用
int[]
而不是
Integer[]
,我还需要这样做吗?是的,你会的@ap@ap数组是Java中的对象,如果基元类型的数组如果我使用
int[]
而不是
Integer[]
,我还需要这样做吗?是的,你需要这样做@ap@ap数组是Java中的对象,事件原始类型的数组在声明变量或字段时,您只能使用数组的简短初始化,例如
int[]test={1,2,3}
否则必须使用
newint[]{1,2,3}
在声明变量或字段时只能使用数组的简短初始化,例如
int[]test={1,2,3}
否则必须使用
newint[]{1,2,3}