java - 将数据从二维数组存储到数组
问题描述
首先,我将数据存储到二维数组中,代码运行良好。代码如下所示,
for(int a = 0; a < bitmap1.getWidth(); a++){
// ------ This is X
for(int b = 0; b < bitmap1.getHeight()-1; b++){
// ---------- This is Y
intArray1[a][b] = Integer.toHexString(bitmap1.getPixel(a,b));
intArray2[a][b] = Integer.toHexString(bitmap2.getPixel(a,b));
intArray3[a][b] = Integer.toHexString(bitmap3.getPixel(a,b));
intArray4[a][b] = Integer.toHexString(bitmap4.getPixel(a,b));
intArray5[a][b] = Integer.toHexString(bitmap5.getPixel(a,b));
intArray6[a][b] = Integer.toHexString(bitmap6.getPixel(a,b));
intArray7[a][b] = Integer.toHexString(bitmap7.getPixel(a,b));
intArray8[a][b] = Integer.toHexString(bitmap8.getPixel(a,b));
}
}//end of Nested FOR
然后我nested for loops
用来改变arrays
上面的数据。但是,这只是1st array
来自我的8 array
. 有没有其他方法可以减少如此多的重复代码,而不是复制如下所示的相同代码并从1st array
to转换8 array
?
int [][] arrayOneZero = new int [array1.length][array1.length];
for(int a = 0; a < array1.length; a++){
for(int b = 0; b < array1.length-1; b++){
if(array1[a][b].equals("ffffffff")){
//This is White
arrayOneZero[a][b] = 1;
}else if(array1[a][b].equals("ff000000")){
//This is Black
arrayOneZero[a][b] = 0;
}else if(array1[a][b].equals("00000000")){
//THis is Black
arrayOneZero[a][b] = 0;
}
}
之后,我想从方法中获取数据,结果全为 0,因为我很确定结果将是 1 或 0。但我不知道如何将数据从二维数组写入数组,因为显示的代码下面肯定是错误的。
int [][] arrayReturned1 = getArrayText(intArray1);
int [] colorValue = new int[bitmap1.getWidth()*bitmap1.getHeight()];
for(int a = 0; a < bitmap1.getWidth(); a++) {
for(int b = 0; b < bitmap1.getHeight()-1; b++) {
arrayReturned1[a][b] = colorValue[a];
}
}
问题已编辑,但问题仍然存在。
解决方案
好吧,我为自己找到了一个使用arrayList
来存储数据的解决方案。它工作正常。
ArrayList<String>arrayList = new ArrayList<>();
for(int a = 0; a < bitmap1.getWidth(); a++){
for(int b = 0; b < bitmap1.getHeight(); b++){
String a1 = String.valueOf(arrayInput1[a][b]);
String a2 = String.valueOf(arrayInput2[a][b]);
String a3 = String.valueOf(arrayInput3[a][b]);
String a4 = String.valueOf(arrayInput4[a][b]);
String a5 = String.valueOf(arrayInput5[a][b]);
String a6 = String.valueOf(arrayInput6[a][b]);
String a7 = String.valueOf(arrayInput7[a][b]);
String a8 = String.valueOf(arrayInput8[a][b]);
arrayList.add(a1+a2+a3+a4+a5+a6+a7+a8); // Store 1110001 into ArrayList
}
}
希望它可以帮助别人。
推荐阅读
- python-3.x - 我们如何在 python 中使用没有硒的 ChromeDriver、IEDriver、GeckoDriver?
- python - Python中带有/或线程安全队列的公平信号量
- asp.net-mvc - 无法显示来自 MVC 视图文件的图像
- java - 我正在创建 Android 布局,但在我的真实设备上运行后,我得到了相同布局的独特视图
- java - 使用 java 在 docker 容器中运行 Cucumber 测试
- c# - 为什么相同的 php UnityWebRequest 在 plesk 服务器上不起作用,但在我的本地主机上起作用?
- java - 是否有具有拆分和限制的随机数生成器?
- google-chrome - 默认全屏打开谷歌浏览器
- c# - 如何在DataBase中保存breakeline并在textarea winform c#中显示它
- c++ - 模块定义 (.def) 文件中的奇怪语法 - “?” 和 ”@”