我有一個對象數組。每個數組元素的內容可以是字符串,也可以是具有字符串的另一個數組。或者它可以是一個包含字符串的數組的數組。以遞歸方式從數組列中獲取字符串
實施例:
Object obj1 = array[[str1, str2, str3], [str4, str5]]
or: Object obj2 =array [str1, str2]
or: Object obj3 = "this string"
我需要這需要該對象作爲參數,並且如果它是第一2箱子一個,返回與這些元素單一陣列的方法。如果它是最後一種情況,它將返回包含作爲參數進入的單個字符串元素的數組。
所以,如果我做
getDataForColumn(obj1) i get array: [str1, str2. str3....str5]
getDataForColumn(obj2) i get array: [str1, str2] //same as input, i know
getDataForColumn(obj3) i get array: ["this string"]
我想,但我真的不能完成我的頭怎麼了遞歸式要做到這一點,也不是可能的,以及至少這種方式。
這就是我想出來的,並堅持下去。
private static Object[] getDataForColumn(Object column) {
if(column instanceof Object[]){
Object[] castarray = (Object[])column;
Object[]newArray = new Object[castArray.length];
for (int i = 0; i < castarray.length; i++) {
if((castarray[i] instanceof Object[])){
//recursion, but how :D
}
else{
newArray[i] = castArray[i];
}
}
return newArray;
}
return new array with object that came in.....
}
請幫忙。 Thanx
什麼語言是這樣,C#?哦,等等... instanceof不是C#關鍵字...也許是Java? – BlueMonkMN 2011-03-17 11:17:51
可以請你添加一個例子嗎?我不認爲我明白你需要做什麼。 – amit 2011-03-17 11:24:54
@amit:我加了個例子! – Julia 2011-03-17 11:30:50