一道java数组习题求助!!!!

将左边的二维数组通过一个函数转成右边的一维函数每个数组前多了一个元素就是它的length搞了半天写不出求大神帮忙~~~... 将左边的二维数组通过一个函数 转成 右边的一维函数 每个数组前多了一个元素 就是它的length
搞了半天 写不出 求大神帮忙~~~
展开
 我来答
百度网友9308069
2013-01-07 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1885万
展开全部
先算出长度,再填。

import java.util.Arrays;
public class Test{
public static void main(String[] args){
int a[][]={
{17,23,1,5},
{8,9},
{34,35,56}
};
int b[]=new int[a.length+a[0].length+a[1].length+a[2].length];
int offset=0;
for(int e[]:a){
b[offset++]=e.length;
System.arraycopy(e, 0, b, offset, e.length);
offset+=e.length;
}
System.out.println(Arrays.toString(b));
}
}
=====
[4, 17, 23, 1, 5, 2, 8, 9, 3, 34, 35, 56]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
从浩气3R
2013-01-07 · 超过18用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:36.7万
展开全部
public class Demo {
public static void main(String[] args) {
int srcArray[][]={{17,23,1,5},{8,9},{34,35,56},{1}};// 源数组
int aLength = srcArray.length;// 源数组的第一维度,需要通过第一维来计算第二维长度
int bLength = 0;// 目标数组的长度
for (int i = 0; i < aLength; i++) {
bLength = bLength + srcArray[i].length + 1;// 目标数组的长度=源数组的每一维长度 + 1
}
int targetArray[] = new int[bLength];// 根据长度来初始化目标数组
int offset = 0;
for (int i = 0; i < aLength; i++) {
int aaLength = srcArray[i].length;
targetArray[offset++] = aaLength;// 每一次都首先将源数组长度优先放入目标数组中
for (int j = 0; j < aaLength; j++){
targetArray[offset++] = srcArray[i][j];// 依次找出源数组的每个元素,放入目标数组中
}
}
for (int res : targetArray) {
System.out.println (res);// 打印结果
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿基米糊
2013-01-07 · 喜欢阅读,喜欢随笔,喜欢分享
阿基米糊
采纳数:52 获赞数:208

向TA提问 私信TA
展开全部
public class ArrayTest{
public static void main(String args[]){
int [][]rs = {{17,23,1,5},{8,9},{34,35,56}};
ArrayTest test = new ArrayTest();
int []res = test.conv(rs);
for(int i = 0; i < res.length; i++){
System.out.print("" + res[i] + " , ");
}
}

public int [] conv(int [][] arr){

int row = arr.length;
int cols = 0;
for(int i = 0; i < row ; i++){ cols++;
for(int j = 0 ; j < arr[i].length; j++){
cols++;
}
}
int [] res = new int[cols];
int s = 0;
for(int i = 0; i < row ; i++){
res[s] = arr[i].length;
s++;
for(int j = 0 ; j < arr[i].length && s < cols; j++){

res[s] = arr[i][j];
s++;
}

} return res;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式