ArrayList 的 subList 结果不可强转成 ArrayList
这是因为 ArrayList 的 subList 方法返回的是一个视图列表(view),而不是一个新的 ArrayList 对象。视图列表是源列表的一个子列表,它们共享相同的内存空间。因此,对视图列表的任何修改都会反映在源列表上,反之亦然。
如果强制将视图列表转换为 ArrayList,可能会导致 ClassCastException 异常或其他未定义的行为。如果需要将子列表转换为 ArrayList,应该使用以下代码:
List<E> arrayList = new ArrayList<>(subList);
其中,subList 是 ArrayList 的 subList 方法返回的子列表。这样可以创建一个新的 ArrayList 对象,并将子列表中的元素复制到新的 ArrayList 中。这样就可以安全地操作新的 ArrayList,而不会影响源列表或其他视图列表。
原文地址: https://www.cveoy.top/t/topic/chh7 著作权归作者所有。请勿转载和采集!