基于java中的哈希映射对多维数组重新排序

时间:2018-02-13 12:03:26

标签: java arrays multidimensional-array

我有一个可变数量的行和列的二维数组questionOrder。该数组作为JSON存储在数据库中。我有一个要求根据输入链接映射questions的键更改元素的顺序(值与排序无关。

示例:

questionOrder = [[2, 3, 4], [5, 7], [8]]
questions     = {2, 3, 5, 4, 8, 7}  // values omitted
desired output: [[2, 3], [5, 4, 8, 7]]

这意味着:

  • 4& 8将它们的位置从第1和第3子阵列改为第2子阵列
  • 子数组3已从questionOrder中删除,因为它是emtpy。

到目前为止,我的代码是

Map<Long, Long> questions = form.getQuestions();
Gson gson = new GsonBuilder().create();
long[][] questionOrder = gson.fromJson(myTemplate.getQuestionOrder(), 
                                       long[][].class);

所以我想创建一个数组questionOrderBkp来保持questionOrder作为临时变量,并找到questions中与questionsOrder不同的第一个元素(4 in这个例子)。然后在questions中找到4的位置,并在该位置插入所有其他元素(示例中为8)。如何以更少的时间复杂度轻松完成这项工作?

0 个答案:

没有答案