我有以下数组:
Point[][] points;
使用包含空值的其他数组初始化它。 我想要的是删除空单元格,因此新数组将不包含任何空值。
例如:
Other Array: P, P, P
P, P, P
N, P, N
N, P, N
New Array: P, P, P
P, P, P
P,
P,
我怎样才能实现它?
更新
这样做的好方法吗?
Point[][] temp = cv.getPtStroke();
int i = 0;
int j = 0;
for (; i < temp.length && temp[i]!= null; i++) {}
Point[][] temp1 = new Point[i][];
i = 0;
for (; i < temp.length && temp[i]!= null; i++)
{
for (; j < temp[i].length && temp[i][j]!= null; j++){}
temp1[i] = new Point[j];
}
更新: 解决问题:
Point[][] temp = cv.getPtStroke();
int i = 0;
for (; i < temp.length && temp[i]!= null; i++) {}
Point[][] temp1 = new Point[i][];
i = 0;
for (; i < temp.length && temp[i]!= null; i++)
{
int j = 0;
for (; j < temp[i].length && temp[i][j]!= null; j++){}
temp1[i] = new Point[j];
}
int k = 0;
int temp1XSize = temp1.length;
int temp1YSize = 0;
for (; k < temp1XSize; k++)
{
temp1YSize = temp1[k].length;
int l = 0;
for (; l < temp1YSize; l++){
temp1[k][l] = temp[k][l];
}
}
你知道更好的方法吗?
答案 0 :(得分:0)
如果你在大型案件中使用Array - 这是不可能的。数组具有“修复”大小。但在某些编程语言中,可以使用ArrayList,List,HasTable等实体。
例如在PHP Arrays中,类似于ArrayList(或List)。在JavaScript中,您可以使用object而不是array。
PHP示例:
//Origin Array
$array = array(
array(1,2,3),
array(null,2, null),
array(null,2,null),
);
// New array
$result = array();
foreach ($array as $i => $row) {
$result[$i] = array();
foreach ($array[$i] as $j => $cell) {
if ($cell !== null) {
$result[$i][$j] = $cell;
}
}
}
JavaScript代码:
var array = [
[1,2,3],
[null,2,null],
[null,2,null]
];
var result = {};
for (var i = 0; i < array.length; i++ ) {
result[i] = {};
for (var j = 0; j < array[i].length; j++ ) {
if (array[i][j] !== null) {
result[i][j] = array[i][j];
}
}
}