java.util.List中的subList方法,是返回list的一部分的视图。
如果做了非结构性修改,双方互相影响。
public static void main(String[] args){ List<Integer> list = new ArrayList<Integer>(); list.add(2); list.add(1); list.add(5); list.add(4); List<Integer> subList = list.subList(0, 2); subList.add(11); list.add(3); System.out.println(list.size()); System.out.println(subList.size()); }
执行上面的代码,就会报错;
6 Exception in thread "main" java.util.ConcurrentModificationException at java.util.SubList.checkForComodification(Unknown Source) at java.util.SubList.size(Unknown Source) at com.sitechasia.ebiz.news.web.NewsCategoryAction.main(NewsCategoryAction.java:228)
将list.add(3);的操作注释,即可正常运行;但是需要注意的是:对subList操作的同时【subList.add(11);】,list的size也增加了1;
5 3
另外,删除list的某一段值,可以这样;
list.subList(0, 2).clear();
相关推荐
4. **注意事项**:截取的子列表与原列表共享相同的底层数组或链表,因此修改子列表会影响原始列表。例如,如果在子列表中添加元素,原列表的大小也会增加。 5. **遍历截取后的List**:可以使用增强for循环或迭代器...
`subList`的使用注意事项 `List.subList()`方法用于获取列表的一个视图。需要注意的是,这个视图与原始列表是关联的,任何对视图的修改都会影响到原始列表,反之亦然。因此,在处理`subList`时需要格外小心,尤其...
**使用场景和注意事项:** - 当需要保持元素插入顺序,并且可能需要根据索引访问或操作元素时,使用`List`接口及其实现类。 - `List`接口中的方法`add`, `remove`, `set`等操作可能会影响迭代器,因此在遍历列表时应...
在Java中,我们可以使用集合类(如List、ArrayList等)或数据库查询(如JDBC、MyBatis等)来实现动态分页。以下是一个简单的Java代码示例,基于List实现动态分页: ```java public class Pagination { private int...
同时,提倡在性能敏感的地方使用`StringBuilder`而非`String`进行字符串拼接,使用`List.subList()`来处理大数据集合,以减少内存占用。 七、日志管理 日志是排查问题的重要工具。规范推荐使用成熟的日志框架,如...
subList 场景中的注意事项 **强制规定**:在 `subList` 场景中,需要注意对原始集合元素的增删操作,这些操作都可能导致子列表的遍历、增删产生 `ConcurrentModificationException` 异常。 **说明**:在使用 `...
三、优化与注意事项 1. 计算总页数:当数据量较大时,直接计算总页数可能会导致性能问题。可以考虑只保存最近几页的页码,或者在用户滚动到底部时动态加载更多数据(懒加载)。 2. 分页缓存:对于频繁访问且不经常...
List 转换注意事项 在处理 List 时,转换操作是常见的需求,如从数组转换为 List。如前所述,直接使用 `Arrays#asList` 创建的 List 是不支持修改操作的。因此,如果需要一个可变的 List,应使用 `new ArrayList...
7. **迭代器注意事项**: 当使用迭代器时,推荐只使用迭代器提供的方法(如`next`、`hasNext`、`remove`等)来操作集合,以避免并发修改异常。如果需要执行更复杂的操作,如添加元素或修改元素,应使用`...
**注意事项**: - 当重写`hashCode()`方法时,应该尽量确保每个元素的哈希值具有较高的唯一性。通常情况下,可以通过组合元素的各个属性的哈希值来实现这一点。 - 示例代码展示如何为自定义类型重写`hashCode()`方法...
后台分页的基本思想是:先从数据库获取所有需要分页的数据,将其存储在一个List集合中,然后根据用户请求的页码,利用List的`subList()`方法对集合进行切割,只将当前页所需的数据传递给前端展示。 2. **项目文件...