ArrayList 中 subList 的基本用法:
subList方法是在给定的ArrayList集合中获取给定下标的子集合,
在使用集合中,可能常常需要取集合中的某一部分子集来进行一下操作,于是subList这个方法就映入我们的眼帘,毫不犹豫地使用。
例如以下代码:
publicstaticvoid main(finalString[] args){
List<Object> lists =newArrayList<Object>();
lists.add("1");
lists.add("2");
lists.add("3");
lists.add("4");
List<Object> tempList = lists.subList(2, lists.size());
tempList.add("6");
System.out.println(tempList);// 1
System.out.println(lists);// 2
}
代码初步写好后,可能我们想达到的效果是:往集合lists的子集合tempList中添加一个元素6,而原有的集合保持不变。
即到达这样的效果:lists = [1, 2, 3, 4],tempList = [3, 4, 6]。但是我们看到实际的结果确是lists里边也添加了元素6。
当我们使用子集合tempList进行元素的修改操作时,会影响原有的list集合。所以在使用subList方法时,一定要想清楚,是否需要对子集合进行修改元素而不影响原有的list集合。
如果需要对子集合的元素进行修改操作而不需要影响原集合时,我们可以使用以下方法进行处理:
publicstaticvoid main(finalString[] args)publicstaticvoid main(finalString[] args){
List<Object> lists =newArrayList<Object>();
lists.add("1");
lists.add("2");
lists.add("3");
lists.add("4");
//注意这里是和本文顶部的代码不同的....
List<Object> tempList =newArrayList<Object>(lists.subList(2, lists.size()));
tempList.add("6");
System.out.println(tempList);// 1
System.out.println(lists);// 2
}
注意:在针对获取的子集合进行的一些增加、删除、修改操作全会直接影响到原有的父类集合
list.sublist(2,4) 就返回一个子集合:它的内容包括从下标为2到下标为4,而且这是左闭右开的 就是说是从大于等于2到小于4 (集合的下标都是从0开始)
相关推荐
List接口中的subList方法提供了一种简单的方式实现分页功能。下面详细介绍如何利用subList方法进行分页以及PageModel类的实现。 首先,了解`subList`方法。在Java中,`List`接口提供了`subList(int fromIndex, int ...
英语Sublist list1答案
2. **并发修改异常**:如果原ArrayList在多线程环境下被修改,而subList同时也在另一个线程中使用,可能会引发`ConcurrentModificationException`,因为修改原ArrayList会影响subList的视图。 3. **不可预测的行为*...
首先,`subList`方法的定义位于`AbstractList`接口中,它是`List`接口的抽象实现。对于`ArrayList`和`LinkedList`等具体实现类,它们继承自`AbstractList`并提供了具体的实现。`subList`方法的基本语法如下: ```...
在Java中, List对象的分页思想可以通过使用subList()方法来实现。subList()方法可以将一个大的List对象分割成多个小的List对象,每个小的List对象包含一定数量的元素。例如,以下代码将一个大的List对象分割成多个...
可以使用`Add`方法向列表中添加元素: ```csharp numbers.Add(6); ``` **3. 插入元素:** 使用`Insert`方法可以在列表的指定位置插入元素: ```csharp numbers.Insert(0, 0); // 在索引为0的位置插入0,列表变为{...
本文将详细解释`List`接口中的常用方法,帮助开发者更好地理解和运用这些功能强大的工具。 #### 1. 创建List实例 ```java List<E> list = new ArrayList(); ``` 这里创建了一个基于`ArrayList`实现的`List`对象,...
List是Java中最常用的集合类型之一,理解并熟练掌握它的使用方法对于日常开发来说至关重要。通过上面的学习,我们可以看到List提供了丰富的API来帮助我们处理数据。无论是简单的元素增删改查还是更复杂的排序和过滤...
在Python编程语言中,列表(list)是一种非常重要的数据结构,它可以存储任意类型的对象,包括数字、字符串,甚至是其他列表。当我们谈论“list嵌套list”时,这意味着在一个列表内部包含了一个或多个列表,这样的...
- `List`接口中的方法`add`, `remove`, `set`等操作可能会影响迭代器,因此在遍历列表时应避免修改列表,除非使用`Iterator`的`remove()`方法。 - `List`接口还提供了一些其他的方法,如`contains()`, `indexOf()`, ...
在这个例子中,`users`是Java端传递到Freemarker模板的一个list,`user`是循环中的变量,每次迭代时代表`users`列表中的一个元素。`as`关键字用于定义迭代变量。在循环体内,我们可以通过`user`访问当前元素的属性,...
如 `List Should Contain Sub List ${list} ${sublist}` 确保主列表包含子列表的所有元素。 6. **List Should Not Contain Duplicates**: 判断列表中是否存在重复元素。在去重后,使用此关键字确认列表不含重复元素...
- 避免在高并发环境中使用`removeAll()`,除非必要,否则考虑使用其他同步机制。 - 如果可能,预处理数据或使用更高效的算法来减少元素的比较次数。 - 对于大量重复元素的移除,使用HashSet作为中间数据结构。 总之...
其中,`subList()`方法是用于获取List的一个连续子列表,这是实现分页的关键。 分页的基本思想是将一个大List分割成多个小List,每个小List代表一页数据。分页通常涉及到两个参数:当前页数(currentPage)和每页...
Arrays.asList、ArrayList的subList坑
3. 在循环中,使用subList方法将原始List分成小List,并将其添加到结果List中。 4. 如果余数remainder大于0,则将余数部分分配给每个小List。 5. 最后,返回结果List。 测试例子 以下是一个简单的测试例子: ```...
在这个“Java List集合的应用.rar”压缩包中,我们可以预见到一系列关于如何在实际场景中使用List集合的实例,例如学生管理系统中的注册、登录和日志管理等常见功能。 首先,让我们深入了解一下Java List集合的基础...
在 Java 编程中,遍历 List 集合是一项常见的任务,特别是在处理数据或执行迭代操作时。这里,我们详细探讨了五种遍历 List 集合的方法,并结合 List 接口概述来理解其核心特性。 1. **普通 for 循环遍历** 这是最...
3. **subList()方法**:这是List接口的一个重要方法,用于获取列表的一部分视图,即截取List。`subList(int fromIndex, int toIndex)`方法返回一个新的List,其包含从fromIndex(包括)到toIndex(不包括)的所有...
此外,List接口还有其他一些方法,如`contains(Object o)`用于判断List是否包含特定元素,`sort(Comparator<? super E> c)`用于排序元素,以及`subList(int fromIndex, int toIndex)`用于获取子列表等。这些方法的...