当前位置: 首页 > 知识库问答 >
问题:

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

太叔高义
2023-03-14

好的,我已经成功地将一个列表变成了一个二维数组。唯一的问题是输出只索引一次,所以基本上,如果我想将每个列表中的10个元素添加到一个二维数组中,那么这个二维数组将只有一个包含“n”个元素的索引。

例如

我愿意

{{1,2,3}, {4,5,6}, {7,8,9}}

相反,它正在返回:

{1,2,3,4,5,6,7,8,9}

我接受了以下建议:将ArrayList转换为包含不同长度数组的2D数组

这是我的代码:

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个答案

杨昊
2023-03-14

我想getOrderCreateTestCase是您的数据提供者。如果是这样,您可以这样尝试吗?

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;
}
 类似资料:
  • 受到这个问题的启发。我创建了这个函数: 不幸的是,它不起作用。为什么?是否可以用C返回一个指向二维数组的指针,并使用上面的方法保留[][]符号?如果不是,原因何在?我在这里遗漏了什么? 我知道通过创建外部数组,通过引用将其传递给函数,可以解决这个问题。但是它有点难看,我想把所有的东西都封装在一个函数中。

  • 问题内容: 有没有办法从SQL查询返回二维数组?喜欢.. “选择id,x,y,z FROM测试” ..并将其返回为id => x,y,z吗?我可以做一个循环并创建第二个数组,但我想那是我可能不必做的额外工作。只是现在不熟悉SQL。 问题答案: 在PHP中,SQL查询将仅返回结果集。行和列。 您需要进一步的循环才能将其处理为您所指类型的数组。没问题,如果您经常使用它,则应将其作为数据库包装的一部分。

  • 我有一个测试类包含测试方法和两个服务类和。我正在为类中的方法编写JUnit测试,该类包括对类方法的调用。在我写的测试方法中 因此,当调用时,它应该返回大小为1,但不返回此列表,返回的是一个大小为0的列表。

  • 我正在用python 3.6.9编写一个平台游戏 讨论中的每个游戏对象都有一个属性img,我将其分配给。这将图像存储为pygame.Surface对象。窗口(屏幕)有一个函数blit,它获取一个曲面对象(图像)和一个x和y坐标对或一个pygame.Rect,它从中获取x和y。 我的代码是: 但是它抛出一个错误,说x.img是一个int。打印这个,似乎是200。在没有迭代器的情况下打印这个会给我同样

  • 请给我一些灯。下面是我的代码:

  • 题目描述 输入[[A, B], [a, b], [1, 2]] 输出[Aa1, Aa2, Ab1, Ab2, Ba1, Ba2, Bb1, Bb2] 相关代码 执行结果如上,为什么return 都是 undefined呢,很困惑,求高人指教,亦可优化该程式,��‍��‍��‍