首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

被这个数组弄晕了

2012-12-16 
被这个数组搞晕了两个数组:String[] colrst{NAME,YEAR,MONTH}String[][] result{{name1,name2

被这个数组搞晕了
两个数组:
String[] colrst={"NAME","YEAR","MONTH"};
String[][] result={{"name1","name2","name3"},{"2011Y","2012Y"},{"1M","2M","3M"}};

要得到:
NAME=name1 and YEAR=2011Y and MONTH=1M
NAME=name1 and YEAR=2011Y and MONTH=2M
NAME=name1 and YEAR=2011Y and MONTH=3M
NAME=name1 and YEAR=2012Y and MONTH=1M
NAME=name1 and YEAR=2012Y and MONTH=2M
NAME=name1 and YEAR=2012Y and MONTH=3M

NAME=name2 and YEAR=2011Y and MONTH=1M
NAME=name2 and YEAR=2011Y and MONTH=2M
NAME=name2 and YEAR=2011Y and MONTH=3M
NAME=name2 and YEAR=2012Y and MONTH=1M
NAME=name2 and YEAR=2012Y and MONTH=2M
NAME=name2 and YEAR=2012Y and MONTH=3M

NAME=name3 and YEAR=2011Y and MONTH=1M
NAME=name3 and YEAR=2011Y and MONTH=2M
NAME=name3 and YEAR=2011Y and MONTH=3M
NAME=name3 and YEAR=2012Y and MONTH=1M
NAME=name3 and YEAR=2012Y and MONTH=2M
NAME=name3 and YEAR=2012Y and MONTH=3M

请达人指点!
[最优解释]
public static void main(String[] args) {
//aa(123);
String[] colrst={"NAME","YEAR","MONTH"};
String[][] result={{"name1","name2","name3"},{"2011Y","2012Y"},{"1M","2M","3M"}};
print(colrst, result);
}

public static void print(String[] arr1, String[][] arr2) {
int len = arr1.length;
List<String> list = new ArrayList<String>();
for(int i=0; i<len; i++) {
String[] arr = arr2[i];
list = orgString(list, arr, i, arr1[i]);
}


System.out.println(list.size());
for(String l : list) {
System.out.println(l);
}
}


private static List<String> orgString(List<String> list, String[] arr, int i, String key) {
if(i == 0) {
for(String a : arr) {
list.add(key+"="+a+" ");
}
}else {
List<String> temp = new ArrayList<String>();
for(int ii=0; ii<list.size(); ii++) {
temp.add(list.get(ii));
}

list = new ArrayList<String>();
for(String next : temp) {
for(String a : arr) {
list.add(next + key+"="+a+" ");
}
}
}
return list;
}
[其他解释]



String[] colrst={"NAME","YEAR","MONTH"};
String[][] result={{"name1","name2","name3"},{"2011Y","2012Y"},{"1M","2M","3M"}};

String[] one=result[0];
String[] two=result[1];
String[] three=result[2];
for(int i=0;i<one.length;i++){
for(int j=0;j<two.length;j++){
for(int k=0;k<three.length;k++){
System.out.println(colrst[0]+"="+one[i]+" and "+colrst[1]+"="+two[j]+" and "+colrst[2]+"="+three[k]);
}
}
}

[其他解释]
lz,这是程序,请接收:

public class Test5 {


public static void main(String[] args) {
String[] colrst={"NAME","YEAR","MONTH"};
String[][] result={{"name1","name2","name3"},{"2011Y","2012Y"},{"1M","2M","3M"}};
for (int i = 0; i < result[0].length; i++) {
for (int j = 0; j < result[1].length; j++) {
for (int k = 0; k < result[2].length; k++) {
System.out.println(colrst[0]+"="+
result[0][i]+" and "+colrst[1]+"="+
result[1][j]+" and "+colrst[2]+"="+result[2][k]);
}
}
}
}
}



结果:

NAME=name1 and YEAR=2011Y and MONTH=1M
NAME=name1 and YEAR=2011Y and MONTH=2M
NAME=name1 and YEAR=2011Y and MONTH=3M
NAME=name1 and YEAR=2012Y and MONTH=1M
NAME=name1 and YEAR=2012Y and MONTH=2M
NAME=name1 and YEAR=2012Y and MONTH=3M
NAME=name2 and YEAR=2011Y and MONTH=1M
NAME=name2 and YEAR=2011Y and MONTH=2M
NAME=name2 and YEAR=2011Y and MONTH=3M
NAME=name2 and YEAR=2012Y and MONTH=1M
NAME=name2 and YEAR=2012Y and MONTH=2M
NAME=name2 and YEAR=2012Y and MONTH=3M
NAME=name3 and YEAR=2011Y and MONTH=1M
NAME=name3 and YEAR=2011Y and MONTH=2M
NAME=name3 and YEAR=2011Y and MONTH=3M
NAME=name3 and YEAR=2012Y and MONTH=1M
NAME=name3 and YEAR=2012Y and MONTH=2M
NAME=name3 and YEAR=2012Y and MONTH=3M

[其他解释]
LZ,你的自己看清楚要输出结果的规律,这个嵌套循环就可以了。

[其他解释]
for(int i = 0; i < result[0].length; i++){
for(int j = 0; j < result[1].length; j++){
for(int k = 0; k < result[2].length; k++){
System.out.println(colrst[0] + "=" + result[0][i] + " and "+
colrst[1]+"=" + result[1][j] +" and "+colrst[2]+"="+result[2][k]);
}
}
}
[其他解释]
貌似来晚了。。。
[其他解释]
LZ要多多增强基础知识!
[其他解释]
又来晚了。
[其他解释]
谢谢大家的回复!
怪我没说清楚,我想问的当然没这么简单,我实际想要问的是:
数组1与数组2的长度一致,数组长度是不固定的,我给的数据只是测试数据,我想可能要用递归来实现吧,但递归半天也没弄出来
[其他解释]
自己顶一下。
[其他解释]
再顶,不管有没有满意答案,下班前结贴
[其他解释]

LZ,贴出你的正式的数据,和想要的结果!
[其他解释]
你直接把需求讲出来,或许我们更容易理解你的问题!
[其他解释]
谢谢ku2ran 

热点排行