为了账号安全,请及时绑定邮箱和手机立即绑定

如何将多个数组保存到单个数组列表中

如何将多个数组保存到单个数组列表中

慕村225694 2023-08-04 14:48:36
我试图将循环中生成的数组列表保存到单独的数组列表中。它不允许我这样做;我收到错误:public static void ranCentroid() {        Random randomPoint = new Random();        Cent = new ArrayList<>();        for (int i = 0; i < numCen; i++) {            int randomP = randomPoint.nextInt(Points.size());            System.out.println(Points.get(randomP));            Cent.get(i).add(randomP);        }        System.out.println(Cent);    }出现错误Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0    at java.util.ArrayList.rangeCheck(Unknown Source)    at java.util.ArrayList.get(Unknown Source)    at phase1.Main.ranCentroid(Main.java:100)    at phase1.Main.main(Main.java:41)
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

我假设 Points 是一个列表,因为您调用方法Points.size()和Points.get(x)。要总结您的结果,请声明一个新列表并使用以下方法List.addAll:


public static void ranCentroid() {

    Random randomPoint = new Random();

    List<Double> result = new ArrayList<>();

    for (int i = 0; i < numCen; i++) {

        int randomP = randomPoint.nextInt(Points.size());

        result.addAll(Points.get(randomP));            

    }

    System.out.println(result);

}

编辑


如果您需要一个列表列表作为结果:


public static void ranCentroid() {

    Random randomPoint = new Random();

    List<List<Double>> result = new ArrayList<>();

    for (int i = 0; i < numCen; i++) {

        int randomP = randomPoint.nextInt(Points.size());

        result.add(Points.get(randomP));            

    }

    System.out.println(result);

}


查看完整回答
反对 回复 2023-08-04
?
www说

TA贡献1775条经验 获得超8个赞

您要做的是减少功能。缩减函数接受一个集合并将其向下一级缩减。因此,在本例中,将 2D 数组转换为 1D 数组。

您也可以在不使用内置归约函数的情况下通过创建数组列表、循环遍历元素并将其添加到您创建的数组列表中来完成此操作。


查看完整回答
反对 回复 2023-08-04
  • 2 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信