[英]Combining 2D array with a 1D array
我有 2 arrays 一个是int[][] pixelYArray
另一个是int[] pixelXArray
。 我无法将图像的整个宽度和高度设置为长度,因为这些像素已经被过滤掉了。 例如,颜色为黄色,这些是剩余的像素,我想创建一个数组或 object,如下所示:
[
{
"pixel x" : 1,
"pixel y" : [
1, 2, 3, 100, 101, 102
]
},{
"pixel x" : 3,
"pixel y" : [
1, 2, 32, 100, 101, 102
]
},
]
文本"pixel x"
和"pixel y"
是可选的,如果它使创建数组更容易则不需要。 在 Javascript 你可以通过做这样的事情来实现它
let array = [];
for(int i=0;i < pixelYArray.length;i++){
let tmpArr = [];
for(int j=0;j < pixelYArray[i].length; j++){
tmpArr.push(pixelYArray[i][j]);
}
array.push({
"pixel x" : pixelXArray[i],
"pixel y" : tmpArr
});
/* or
array.push({
pixelXArray[i],
tmpArr
}); */
}
只是你怎么能在 Java 中实现这个,因为你不能像这样创建对象或将它们推入数组。 我有一个这样的 for 循环:
for(int i=0;i < pixelYArray.length;i++){
System.out.println("pixel x: " + pixelXArray[i] + " pixel y: ");
for(int j=0;j < pixelYArray[i].length; j++){
System.out.print(pixelYArray[i][j] + "\t" );
}
System.out.println("\nEnd of Pixels for row \n");
}
我认为这将解决您的问题:
public class Test {
public static void main(String[] args) {
List<Color> list = new ArrayList<>();
Color c = new Color();
c.pixel_x = 1;
c.pixel_y.add(1);
c.pixel_y.add(2);
c.pixel_y.add(3);
c.pixel_y.add(100);
c.pixel_y.add(101);
c.pixel_y.add(102);
list.add(c);
System.out.println(c);
}
}
class Color {
public int pixel_x;
public List<Integer> pixel_y;
public Color() {
pixel_x = 0;
pixel_y = new ArrayList<>();
}
@Override
public String toString() {
return pixel_x + " " + pixel_y;
}
}
首先创建一个Color
object,其中包含类型为pixel_x
的Integer
和类型为List<Integer>
的pixel_y
,然后在您的 main 中,每次创建Color
实例时,将其添加到List<Color>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.