创建数组列表的正确语法是什么?

时间:2020-07-31 22:34:17

标签: java syntax

我想将三个列表合并为一个较大的列表。我不知道这样做的语法,这看起来很复杂。

List<IloNumVar[][][]> all_through = new ArrayList<IloNumVar[][][]>(Arrays.asList(through_lane1, through_lane2, through_lane3, through_lane4, through_lane5, through_lane6, through_lane7, through_lane8));
List<IloNumVar[][][]> all_left = new ArrayList<IloNumVar[][][]>(Arrays.asList(left_lane2, left_lane4, left_lane6, left_lane8));
List<IloNumVar[][][]> all_right = new ArrayList<IloNumVar[][][]>(Arrays.asList(right_lane1, right_lane3, right_lane5, right_lane7));
List<List<IloNumVar[][][]>> all_movements = new ArrayList<ArrayList<IloNumVar[][][]>>(Arrays.asList(all_through, all_left, all_right)); 

我在最后一行all_movements中遇到语法错误。创建此列表的正确语法是什么?

2 个答案:

答案 0 :(得分:0)

Mistake在最后一行

all_through,all_left,all_right是List 数据类型,您正在尝试初始化它们,因为它们是ArrayList 。即使这看起来合乎逻辑,但这在语法上也不正确。 只需在代码的最后一行中进行更改 这是正确的代码段:

List<List<IloNumVar[][][]>> all_movements = new ArrayList<List<IloNumVar[][][]>>(Arrays.asList(all_through, all_left, all_right)); 

答案 1 :(得分:0)

就是这样。

List<List<IloNumVar[][][]>> all_movements = new ArrayList<>();
all_movements.add(all_through);
all_movements.add(all_left);
all_movements.add(all_right);