【发布时间】:2019-05-02 17:03:03
【问题描述】:
所以,我有两个多维数组。
double[][] combinations = new double[10000][3];
double[][] uniqueCombinations = new double[100][3];
数组值示例:
[[1.233, 1.333, 0.76], [1.1, 1.333, 1.333], [0.9, 1.1, 0.9], [1.1, 1.333, 1.333]]
这就是我想要的
[[1.233, 1.333, 0.76], [1.1, 1.333, 1.333], [0.9, 1.1, 0.9]]
我想从组合中获取所有唯一数组并用它填充 uniqueCombinations。
我试过这个函数,但它只填充了 5 个数组,很奇怪!
public static double[][] removeDuplicate(double[][] matrix) {
double[][] newMatrix = new double[matrix.length][matrix[0].length];
int newMatrixRow = 1;
for (int i = 0; i < matrix[0].length; i++)
newMatrix[0][i] = matrix[0][i];
for (int j = 1; j < matrix.length; j++) {
List<Boolean> list = new ArrayList<>();
for (int i = 0; newMatrix[i][0] != 0; i++) {
boolean same = true;
for (int col = 2; col < matrix[j].length; col++) {
if (newMatrix[i][col] != matrix[j][col]) {
same = false;
break;
}
}
list.add(same);
}
if (!list.contains(true)) {
for (int i = 0; i < matrix[j].length; i++) {
newMatrix[newMatrixRow][i] = matrix[j][i];
}
newMatrixRow++;
}
}
int i;
for(i = 0; newMatrix[i][0] != 0; i++);
double finalMatrix[][] = new double[i][newMatrix[0].length];
for (i = 0; i < finalMatrix.length; i++) {
for (int j = 0; j < finalMatrix[i].length; j++)
finalMatrix[i][j] = newMatrix[i][j];
}
return finalMatrix;
}
【问题讨论】:
-
TLDR;你知道组合不是有序的吗? IE。
[1.5, 2.0]和[2.0, 1.5]一样吗? -
不,它没有被订购。它需要不订购,因为它是一个组合。
-
好的。检查这个code 的样本,它可能对你有用......
标签: java arrays object arraylist multidimensional-array