gpt4 book ai didi

java - 从列表返回二维数组未正确索引

转载 作者:行者123 更新时间:2023-12-01 12:22:25 25 4
gpt4 key购买 nike

好的,我已经成功地将列表转换为二维数组。唯一的问题是输出仅对其进行索引一次,因此基本上,如果我想将每个列表中有 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;
}

我正在使用DataProvidersTestNG,它们需要返回一个二维对象数组,我可以理解为什么。我正在从 JSON 数组 (json-simple) 解析出某些数据,将其添加到列表中,然后转换为二维数组。假设它从 ID=5546 获取信息,然后是下一个 id=4987、下一个 id=3847 等等。非常感谢您的帮助

已更新...

好吧,我想我明白它为什么要做它正在做的事情,但我仍然不知道如何解决这个问题。所以基本上当它循环并开始新的数据集时,它需要创建一个新数组。

{{列表1}、{列表2}、{列表3}}

最佳答案

我认为 getOrderCreateTestCases 是您的数据提供者。如果可以的话你可以尝试一下吗?

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) {

try {

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);
} catch (Exception e) {
// Ignore
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (APIException e) {
e.printStackTrace();
}
valuesString = new Object[list.get(i).size()][];

for (int i = 0; i < list.size(); i++) {
List<String> row = list.get(i);
valuesString[i] = row.toArray(new String[row.size()]);
}

return valuesString;
}

关于java - 从列表返回二维数组未正确索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26578432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com