从列表返回二维数组的java没有正确索引
好的,我已经成功地把一个列表变成了一个二维数组。唯一的问题是输出只对它进行一次索引,因此基本上,如果每个列表中有10个元素要添加到二维数组中,那么二维数组将只有一个包含“n”个元素的索引
比如说
我想要
{{1,2,3}, {4,5,6}, {7,8,9}}
相反,它正在返回:
{1,2,3,4,5,6,7,8,9}
我听取了以下方面的建议: Convert ArrayList into 2D array containing varying lengths of arrays
这是我的密码:
public static Object[][] getOrderCreateTestCases(){
List<List<String>> list = new ArrayList<>();
List<String> values = new ArrayList<>();
try {
JSONArray jObject = (JSONArray)getClient().sendGet(String.format("get_cases/12&suite_id=136"));
for(Object obj : jObject){
JSONObject jObj = (JSONObject)obj;
values.add(jObj.get("title").toString());
values.add(jObj.get("id").toString());
values.add(jObj.get("custom_order_type").toString());
values.add(jObj.get("custom_product_type").toString());
values.add(jObj.get("custom_free_shipping").toString());
values.add(jObj.get("custom_billing_country").toString());
values.add(jObj.get("custom_shipping_country").toString());
list.add(values);
for(int i=0; i<list.size(); i++){
valuesString = new Object[list.get(i).size()][];
List<String> row = list.get(i);
valuesString[i] = row.toArray(new String[row.size()]);
//System.out.print(valuesString[i]);
break;
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (APIException e) {
e.printStackTrace();
}
return valuesString;
}
我正在使用DataProviders
和TestNG
进行处理,它们需要返回一个二维对象数组,我可以理解为什么。我从JSON
数组(json simple)中解析出某些数据,将其添加到列表中,然后转换为二维数组。假设它从ID=5546
获取信息,然后是下一个id=4987
,下一个id=3847
等等。。任何帮助都将不胜感激
更新
好吧,我想我明白它为什么这么做了,但我仍然不知道如何解决这个问题。所以基本上,当它循环并开始新的数据集时,它需要创建一个新的数组
{{List1},{List2},{List3}
# 1 楼答案
我想getOrderCreateTestCases是您的数据提供者。 如果是的话,你能这样试试吗