java - 结合二维数组和一维数组
问题描述
我有 2 个数组,一个是 a int[][] pixelYArray
,另一个是 a int[] pixelXArray
。我无法将图像的全宽和全高设置为长度,因为这些像素已经被过滤掉了。例如,颜色为黄色,这些是剩余的像素,我想创建一个这样的数组或对象:
[
{
"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
包含pixel_x
类型Integer
和pixel_y
类型的对象,List<Integer>
然后在您的主目录中,每次创建Color
实例时,将其添加到List<Color>
.
推荐阅读
- c# - 我需要一个可以为我的变量设置新值的 C# 计时器
- url - URL 中 unicode 字符的使用
- .net - 在命令行下,如何编译一个 F# lexer 然后在 Mac OS 上运行?
- node.js - 如何使用 Postgres express 后端部署在 heroku 上的 Angular 应用程序的 CORS 问题?
- matlab - Matlab IoSR Statistics Boxplot - 晶须显示分位数错误?
- python - 无法在 Ubuntu 中安装 Pytorch
- javascript - 当我在我的免费 Heroku 网站上使用头盔包时,我的 CSS 无法加载,我不知道为什么
- javascript - app.get() 方法似乎没有在 express 应用程序中被调用
- visual-studio - Xamarin Listview 绑定与对象属性不起作用
- yaml - 适用于 Microsoft Visual Studio Enterprise 2019 的 YAML Linter