按Java

时间:2017-08-19 14:36:37

标签: java sorting multidimensional-array

(我在处理3.3.5工作)

我的代码生成许多相同长度的布尔数组(8)。 经过一些操作后,我想按照" true"的数量对这些数组进行排序。值。为方便起见,我使用布尔数组;您可以随意将它们视为8位数字,并按设置位数进行排序。也不允许重复。

最终我想以下列方式显示这些数组:

具有单个真值的所有数组:Array1,Array2,Array3,Array4 ......

所有具有两个真值的数组:Array1,Array2,Array3,Array4 ......

所有具有三个真值的数组:Array1,Array2,Array3,Array4 ......

所有具有四个真值的数组:Array1,Array2,Array3,Array4 ......

...

...

我现在这样做的(非工作)方式是通过一个3D布尔数组(让我们说你得到一个特定的索引 - 在我想要排序的布尔数组中 - 通过坐标[x] [ Y] [Z])

x是列,y是行,z是 .length 8 布尔数组的缩进

(0。检查我现在要排序的数组是否已经重复)

  1. 获取真实值的数量(y位置)

  2. 浏览x位置:

  3. 检查[x] [y] [0到7]是否为空,如果为真:在这些位置写入数组。 (如果不是:转到下一个x位置)

  4. (我用2个函数做这个:hasEqual和findEmpty,如果你对未注释的代码感兴趣......在这里:https://gist.github.com/anonymous/83fa90fdaacbeffb8ecc3d5c5a513890(为畏缩做准备))

    任何帮助将不胜感激! 可以是伪代码,也可以只是想法/概念!

1 个答案:

答案 0 :(得分:0)

您可以将Stream API的sorted()方法与Comparator.comparing(arr -> getNumberOfTrueValues(arr))

结合使用,轻松完成