`
liuzhiqiang19890403
  • 浏览: 61084 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

List中的subList方法的使用

 
阅读更多

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开始)

 

分享到:
评论

相关推荐

    java中利用List的subList方法实现对List分页(简单易学)

    List接口中的subList方法提供了一种简单的方式实现分页功能。下面详细介绍如何利用subList方法进行分页以及PageModel类的实现。 首先,了解`subList`方法。在Java中,`List`接口提供了`subList(int fromIndex, int ...

    英语Sublist list1答案

    英语Sublist list1答案

    为什么阿里要慎重使用ArrayList中的subList方法

    2. **并发修改异常**:如果原ArrayList在多线程环境下被修改,而subList同时也在另一个线程中使用,可能会引发`ConcurrentModificationException`,因为修改原ArrayList会影响subList的视图。 3. **不可预测的行为*...

    重写subList

    首先,`subList`方法的定义位于`AbstractList`接口中,它是`List`接口的抽象实现。对于`ArrayList`和`LinkedList`等具体实现类,它们继承自`AbstractList`并提供了具体的实现。`subList`方法的基本语法如下: ```...

    关于Java中List对象的分页思想-按10个或者n个数对list进行分组

    在Java中, List对象的分页思想可以通过使用subList()方法来实现。subList()方法可以将一个大的List对象分割成多个小的List对象,每个小的List对象包含一定数量的元素。例如,以下代码将一个大的List对象分割成多个...

    CSharp_List.zip_C# list_C#中list_C#中list的用法_C#怎么引用List_c# list

    可以使用`Add`方法向列表中添加元素: ```csharp numbers.Add(6); ``` **3. 插入元素:** 使用`Insert`方法可以在列表的指定位置插入元素: ```csharp numbers.Insert(0, 0); // 在索引为0的位置插入0,列表变为{...

    list常用方法

    本文将详细解释`List`接口中的常用方法,帮助开发者更好地理解和运用这些功能强大的工具。 #### 1. 创建List实例 ```java List&lt;E&gt; list = new ArrayList(); ``` 这里创建了一个基于`ArrayList`实现的`List`对象,...

    java的list取之方法

    List是Java中最常用的集合类型之一,理解并熟练掌握它的使用方法对于日常开发来说至关重要。通过上面的学习,我们可以看到List提供了丰富的API来帮助我们处理数据。无论是简单的元素增删改查还是更复杂的排序和过滤...

    list嵌套list例子

    在Python编程语言中,列表(list)是一种非常重要的数据结构,它可以存储任意类型的对象,包括数字、字符串,甚至是其他列表。当我们谈论“list嵌套list”时,这意味着在一个列表内部包含了一个或多个列表,这样的...

    javaList的定义和方法

    - `List`接口中的方法`add`, `remove`, `set`等操作可能会影响迭代器,因此在遍历列表时应避免修改列表,除非使用`Iterator`的`remove()`方法。 - `List`接口还提供了一些其他的方法,如`contains()`, `indexOf()`, ...

    Freemarker中遍历list集合实例

    在这个例子中,`users`是Java端传递到Freemarker模板的一个list,`user`是循环中的变量,每次迭代时代表`users`列表中的一个元素。`as`关键字用于定义迭代变量。在循环体内,我们可以通过`user`访问当前元素的属性,...

    【Robotframework】列表List的常用操作.pdf

    如 `List Should Contain Sub List ${list} ${sublist}` 确保主列表包含子列表的所有元素。 6. **List Should Not Contain Duplicates**: 判断列表中是否存在重复元素。在去重后,使用此关键字确认列表不含重复元素...

    List.removeAll() 方法的性能效率

    - 避免在高并发环境中使用`removeAll()`,除非必要,否则考虑使用其他同步机制。 - 如果可能,预处理数据或使用更高效的算法来减少元素的比较次数。 - 对于大量重复元素的移除,使用HashSet作为中间数据结构。 总之...

    实现对List的分页

    其中,`subList()`方法是用于获取List的一个连续子列表,这是实现分页的关键。 分页的基本思想是将一个大List分割成多个小List,每个小List代表一页数据。分页通常涉及到两个参数:当前页数(currentPage)和每页...

    在项目中用了Arrays.asList、ArrayList的subList,被公开批评.html

    Arrays.asList、ArrayList的subList坑

    java中将一个List等分成n个list的工具方法(推荐)

    3. 在循环中,使用subList方法将原始List分成小List,并将其添加到结果List中。 4. 如果余数remainder大于0,则将余数部分分配给每个小List。 5. 最后,返回结果List。 测试例子 以下是一个简单的测试例子: ```...

    Java List集合的应用.rar

    在这个“Java List集合的应用.rar”压缩包中,我们可以预见到一系列关于如何在实际场景中使用List集合的实例,例如学生管理系统中的注册、登录和日志管理等常见功能。 首先,让我们深入了解一下Java List集合的基础...

    list遍历的五种方法

    在 Java 编程中,遍历 List 集合是一项常见的任务,特别是在处理数据或执行迭代操作时。这里,我们详细探讨了五种遍历 List 集合的方法,并结合 List 接口概述来理解其核心特性。 1. **普通 for 循环遍历** 这是最...

    Java 实例 - List 截取源代码+详细指导教程.zip

    3. **subList()方法**:这是List接口的一个重要方法,用于获取列表的一部分视图,即截取List。`subList(int fromIndex, int toIndex)`方法返回一个新的List,其包含从fromIndex(包括)到toIndex(不包括)的所有...

    list遍历集合源码

    此外,List接口还有其他一些方法,如`contains(Object o)`用于判断List是否包含特定元素,`sort(Comparator&lt;? super E&gt; c)`用于排序元素,以及`subList(int fromIndex, int toIndex)`用于获取子列表等。这些方法的...

Global site tag (gtag.js) - Google Analytics