(我在处理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。检查我现在要排序的数组是否已经重复)
获取真实值的数量(y位置)
浏览x位置:
检查[x] [y] [0到7]是否为空,如果为真:在这些位置写入数组。 (如果不是:转到下一个x位置)
(我用2个函数做这个:hasEqual和findEmpty,如果你对未注释的代码感兴趣......在这里:https://gist.github.com/anonymous/83fa90fdaacbeffb8ecc3d5c5a513890(为畏缩做准备))
任何帮助将不胜感激! 可以是伪代码,也可以只是想法/概念!
答案 0 :(得分:0)
您可以将Stream API的sorted()
方法与Comparator.comparing(arr -> getNumberOfTrueValues(arr))