java - 如何从二维数组中获取奇数行或偶数行?
问题描述
如何从二维数组中获取奇数行或偶数行?
String myData [][] = {
{"test1","test1","test1","test1"},
{"test2","test2","test2","test2"},
{"test3","test3","test3","test3"},
{"test4","test4","test4","test4"},
{"test5","test5","test5","test5"},
{"test6","test6","test6","test6"}
};
并将它们写入 1 或 2 个新数组。需要获得:
String oddLines [][] = {
{"test1","test1","test1","test1"},
{"test3","test3","test3","test3"},
{"test5","test5","test5","test5"}};
String evenLines [][] = {
{"test2","test2","test2","test2"},
{"test4","test4","test4","test4"},
{"test6","test6","test6","test6"}};
myData 数组大小未知,可能 <5 , <6
解决方案
你可以用数学。你知道会有一半是偶数,一半是奇数。您可以使用它和循环将值从原始数组复制到新数组。就像是,
String[][] evenLines = new String[myData.length / 2][];
String[][] oddLines = new String[myData.length - evenLines.length][];
for (int i = 0; i < myData.length; i++) {
oddLines[i / 2] = myData[i];
if (i + 1 < myData.length) {
evenLines[i / 2] = myData[i + 1];
i++;
}
}
System.out.printf("oddLines: %s%n", Arrays.deepToString(oddLines));
System.out.printf("evenLines: %s%n", Arrays.deepToString(evenLines));
输出
oddLines: [[test1, test1, test1, test1], [test3, test3, test3, test3], [test5, test5, test5, test5]]
evenLines: [[test2, test2, test2, test2], [test4, test4, test4, test4], [test6, test6, test6, test6]]
推荐阅读
- validation - 从电子邮件的用户名部分(不是域)查找一次性电子邮件地址
- google-bigquery - BigQuery 选择具有不同列名的多个表
- reactjs - React formik Validation Error Api Renders Every Time when other field validate
- android - Flutter - 透明的系统导航栏
- python - 有没有办法为 interp1d 配置变量 fill_values?
- python - 如果接收到 http 请求,带有 ssl_context 的烧瓶服务器会冻结
- python - UDF 函数需要很长时间
- reactjs - 带有 next.js 的 material-ui 样式
- javascript - 你好,我想知道如何使用 PresenceUpdate 但它每 5 分钟执行一次 - Discord.js
- c# - 集合视图在 IOS 上不显示项目,但在 Android 上有效