有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是一种列表,当以大于当前列表大小的索引插入元素时,该列表会自动调整大小

如果在大于当前列表大小的索引处添加元素而不引发任何RuntimeException,我如何创建一个List<T>来重新调整大小。考虑下面的代码示例:

    List<String> myList = new ArrayList<String>();
    // Assuming current list size is 10, Let's insert at a very large index.
    int index = 10000;
    myList.add(index, "test");

如果索引超过列表大小,添加操作将导致IndexOutOfBoundException

我希望这个列表的填充比较稀疏,所以它的大小应该与非空值的数量成比例


共 (1) 个答案

  1. # 1 楼答案

    在java中实现稀疏列表最简单的方法就是使用哈希映射

    Map<Integer, String> sparseList = new HashMap<>();
    

    要将元素添加到列表中,请执行以下操作:

    sparseList.put(index, value)
    

    要删除元素,请执行以下操作:

    sparseList.remove(index);
    

    要查询元素,请执行以下操作:

    sparseList.get(index); // Will return null if no element at this position
    

    如果需要区分null和not set,可以这样做

    sparseList.containsKey(index);
    

    在这种情况下,列表将不会保留元素的顺序,如果这很重要,可以将HashMap替换为TreeMap