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

如何设置嵌套列表的初始容量?

如何设置嵌套列表的初始容量?

偶然的你 2022-09-07 21:49:56
我试图将嵌套的初始容量设置为某个值(例如10),但是当我尝试访问内部列表以添加一些元素时,它给了我。请建议一些好的解决方案!!!ArrayListArrayOutOfBoundException下面是代码片段public static void main(String[] args) {    ArrayList<ArrayList<Integer>> bucket = new ArrayList<ArrayList<Integer>>();    System.out.println(bucket.get(5).add(5));           System.out.println(bucket);}
查看完整描述

3 回答

?
慕村9548890

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

从 Java 8 开始,您可以使用 生成空列表列表。Stream.generate


import java.util.*;

import java.util.stream.*;


public class ListOfLists {

    public static void main(String[] args) {

        List<List<Integer>> bucket = listOfList(10);

        bucket.get(5).add(5);

        System.out.println(bucket);

    }


    public static <T> List<List<T>> listOfList(int size) {

        return Stream.generate(ArrayList<T>::new).limit(size).collect(Collectors.toList());

    }

}

输出

[[], [], [], [], [], [5], [], [], [], []]


查看完整回答
反对 回复 2022-09-07
?
婷婷同学_

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

System.out.println(bucket.get(5).add(5));

您需要了解这行代码,您正在尝试从数组列表“存储桶”中访问第5个元素,但是您是否在存储桶中添加了任何元素(在这种情况下,该元素是另一个数组列表)ArrayList

除非您添加元素,否则无法访问它们,因为它们不存在,因此您会在尝试访问第5个元素时看到ArrayOutOfBoundExceptionbucket.get(5)

你可能想通过ArrayList的javadoc https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html


查看完整回答
反对 回复 2022-09-07
?
波斯汪

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

法典:


 public class Example {


    public static void main(String[] args) {

        ArrayList<ArrayList<Integer>> bucket = new ArrayList<ArrayList<Integer>>();      


        //initial capacity of the nested arraylist to 5.  

        System.out.println(bucket.add(new ArrayList<>(5)));

        ArrayList<Integer> element = new ArrayList<>();

        element.add(5);

        bucket.add(0, element);

        System.out.println(bucket);

    }


}

输出:


true

[[5], []]


查看完整回答
反对 回复 2022-09-07
  • 3 回答
  • 0 关注
  • 102 浏览

添加回答

举报

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