`

使用subList后,原List不允许再进行修改

阅读更多

 

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

/**
 * 类 Test 的实现描述:TODO 类实现描述
 * @author spring
 * Jul 16, 20129:46:14 AM
 */
public class Test {

    /**
     * @author spring
     * Jul 16, 20129:46:14 AM
     * @param args
     * @throws Exception 
     */
    public static void main(String[] args) {
      
    List<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    
    List<String> subList = list.subList(0,1);
    
    list.add("c");
    
    System.out.println(subList);
    
    }

 在同个方法中,如果对一个List使用过subList截取后,不能再对原List进行修改,否则会有运行时异常。如上面的情况,由于第6行使用过subList,则当第20行再对原list进行修改后,会导致28行出错。

分享到:
评论

相关推荐

    重写subList

    在Java编程中,`subList`方法是`ArrayList`、`LinkedList`等集合类的一个重要功能,它允许我们从原始列表中创建一个子列表,这个子列表是原列表的一个视图,而不是复制。当我们调用`subList`时,对子列表的操作会...

    java的list取之方法

    当多个线程同时对`List`进行修改时,可能会抛出`ConcurrentModificationException`异常。为了解决这个问题,可以使用`CopyOnWriteArrayList`或者手动同步代码块。 ### 总结 本篇介绍的是Java中List的基本操作以及...

    list遍历集合源码

    例如,如果你在初始化时不确定具体使用哪种List实现,可以先声明一个List类型的引用,后期根据需求再决定填充哪种实现。 此外,List接口还有其他一些方法,如`contains(Object o)`用于判断List是否包含特定元素,`...

    javalist.zip_list集合 java

    在Java编程语言中,List接口是集合框架的重要组成部分,它代表了一个有序的元素序列,允许重复元素,并且提供了索引访问。"javalist.zip_list集合 java"这个标题暗示我们将探讨Java中的List集合以及它的应用。描述中...

    list常用方法

    在Java编程语言中,`List`接口是集合框架的重要组成部分,它提供了有序元素集合的实现,并允许重复元素的存在。本文将详细解释`List`接口中的常用方法,帮助开发者更好地理解和运用这些功能强大的工具。 #### 1. ...

    javaList的定义和方法

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

    JavaList.rar_javalist

    `List`接口继承自`Collection`接口,它提供了额外的功能,比如按照索引访问元素、保持元素的顺序以及允许重复元素。在本教程中,我们将深入探讨如何创建和使用`Java List`。 首先,我们需要导入`java.util.List`和`...

    10个Java经典的List面试题!.zip

    在Java编程领域,List接口是集合框架的重要组成部分,它提供了有序的元素存储,允许元素重复,并且保持插入顺序。这份资料“10个Java经典的List面试题!”将深入探讨List接口及其实现类的关键知识点,帮助求职者或...

    list遍历的五种方法

    在 Java 编程中,遍历 List 集合是一项常见的任务,特别是在处理...这些方法使 List 成为处理有序数据的强大工具,可以方便地进行插入、删除、查找和修改等操作。在实际编程中,根据需求选择合适的遍历方法至关重要。

    List Data Simple Gues

    7. **切片操作**:允许我们获取列表的一部分,例如,`sublist = my_list[1:3]`将获取列表的第二和第三个元素。 8. **列表函数和方法**:Python提供了许多内置函数和列表方法,如`len()`计算长度,`count()`计算元素...

    python入门-26-列表嵌套.ev4.rar

    new_nested_list = [[item + 1 for item in sublist] for sublist in nested_list] ``` 6. **其他操作**:嵌套列表支持所有标准列表操作,如`append()`, `extend()`, `insert()`, `remove()`等,但需要注意的是,...

    Python列表操作.zip

    遍历嵌套列表需使用嵌套循环,如`for sublist in nested_list:`,再对子列表进行循环。 9. **列表方法** Python提供许多其他列表方法,如`extend()`用于合并列表,`count()`计算元素出现次数,`sort()`对列表排序...

    Java编程中常见的坑

    使用`Arrays.asList()`方法将数组转换为集合时需要注意,这种方法返回的是一个固定大小的列表,并且不允许修改集合(比如添加或删除元素)。如果尝试修改该集合,将会抛出`UnsupportedOperationException`。 将集合...

    20个最佳的Java集合框架面试题目.zip

    6. **List与Set的区别**:List允许重复元素并保持插入顺序,Set不允许重复元素,不保证元素顺序。 7. **Map接口**:Map不是Collection的子接口,而是独立的接口,它定义了存储键值对的方法。HashMap、TreeMap、...

    python列表定义方式.docx

    sublist = original_list[1:3] # 获取列表的第二个和第三个元素 copied_list = original_list.copy() # 复制整个列表 ``` 7. **列表解析和生成器表达式** 列表解析和生成器表达式是列表推导式的扩展,它们允许...

    java集合中的list详解

    ArrayList的迭代器在遍历过程中,如果List集合被修改,迭代器会抛出`ConcurrentModificationException`异常,以防止数据不一致。 4. 性能比较 相比于LinkedList,ArrayList在元素的随机访问和获取上有优势,因为它...

    Java List简介_动力节点Java学院整理

    - **subList(int fromIndex, int toIndex)**: 返回一个新列表,包含原列表从 `fromIndex`(包括)到 `toIndex`(不包括)的元素。 此外,List 还有一个特殊的迭代器——**ListIterator**,它是 Iterator 的子接口。...

    java list用法示例详解

    Java List接口是Java集合框架的重要组成部分,它代表了一个有序的元素集合,允许元素重复,并且提供了索引访问。本文将详细解析Java List接口及其常见实现类ArrayList、LinkedList和Vector的用法。 首先,List接口...

    Tcl教程中文版-一本比较基本的入门的书

    使用双引号`"`可以保护内部的变量和命令不受置换的影响,而花括号`{}`则完全保护其内容不受任何置换的影响。例如: ```tcl set var "world" puts "$var is fine" ;# 输出 "world is fine" puts "{$var is fine}...

Global site tag (gtag.js) - Google Analytics