java - 确保容量无法识别

标签 java list

import java.util.*;
class A{
    public static void main(String[] args){
    }
    private List <B> bList;
    private Random generator = new Random();
    A(List<B> initialList){
        bList = new ArrayList<B> ();
        int listSize = initialList.size();
        bList.ensureCapacity(listSize);
             for (B b : initialList) {
             int bIndex = generator.nextInt(listSize);
             bList.add(bIndex , b);
        }
    }
}
class B{
}

我一直在阅读错误

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: java.util.List.ensureCapacity

最佳答案

ensureCapacity 不是 List 类型的方法。

是的,它是 ArrayList 的一个方法,但是引用 bList 是一个 List,你应该将它强制转换为 ArrayList 以使用该方法,如下所示:

((ArrayList<B>) bList).ensureCapacity(listSize);
         for (B b : initialList) {
         int bIndex = generator.nextInt(listSize);
         bList.add(bIndex , b);
    }

顺便说一句,在我的整个程序生命周期中,我从来没有直接调用过ArrayList 的ensureCapacity 方法。

关于java - 确保容量无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15445827/

相关文章:

java - 如何在JAVA中使用参数化构造函数制作类的未定义长度的对象数组?

java - 从php页面用java下载多媒体内容

java - Spring boot 模拟对象在调用时返回 null

java - 在旧设备上找不到 Android 资源 ID

python - 如何使用 python 将列表中的子字符串与另一个列表进行比较

python - 如何修改Python字典值并创建字典列表?

list - Flutter - 如何将 List<Uint8List> 放入共享首选项?

c# - 反射调用列表中的类中的方法

python - 迭代时附加到列表

Java 8 Stream API 将 Map<A, Set<B>> 反规范化为没有 Pair 的 Map<B, A>