• 技术文章 >Java >java教程

    java中List中set方法和add方法的区别是什么

    王林王林2023-04-19 19:49:29转载32

    前言

    在Java中的常用的集合接口List中有两个非常相似的方法:

    E set(int index, E element);

    void add(int index, E element);

    这两个方法都是在集合的指定位置插入指定的元素,那么这两个方法到底有什么区别呢?接下来我们通过ArrayList这个我们常用集合实现来看一下这两个方法的差异

    相同点

    首先我们来看一下这两个方法在ArrayList中的相同点

    他们都会在集合的指定位置插入新的元素,例如下面的例子:

    #在集合的第2位插入一个 F
    # 通过add方法插入
    List<String> list = new ArrayList<String>();
            list.add("A");
            list.add("B");
            list.add("C");
            System.out.println(list);
    
            list.add(2, "F");
            System.out.println(list);
            
    #运行结果:  [A, B, F, C]
    
    #通过set方法插入
    List<String> list = new ArrayList<String>();
            list.add("A");
            list.add("B");
            list.add("C");
            System.out.println(list);
    
            list.set(2, "F");
            System.out.println(list);
    #运行结果: [A, B, F]

    不同点

    第一个不同点从上面的例子就可以看出来,add 方法是在指定位置插入新的值,然后将原先位置的元素
    和原先位置之后的所有元素都向后移动了一位,而 set 方法是直接覆盖了原来的元素

    #在集合的第2位插入一个 F
    # 通过add方法插入
    List<String> list = new ArrayList<String>();
            list.add("A");
            list.add("B");
            list.add("C");
            System.out.println(list);
    
            list.add(2, "F");
            System.out.println(list);
            
    #运行结果:  [A, B, F, C]
    
    #通过set方法插入
    List<String> list = new ArrayList<String>();
            list.add("A");
            list.add("B");
            list.add("C");
            System.out.println(list);
    
            list.set(2, "F");
            System.out.println(list);
    #运行结果: [A, B, F]

    add 方法对于index的取值范围是 0<= index <= size(),也就是说add方法可以在当前集合的最后一个元素后面再添加一个新元素;set 方法对于index的取值范围是 0< index < size(),也就是说set方法只能覆盖当前已有的元素,取值范围不能超出当前集合元素的范围

    #通过add在当前集合的第四个位置插入F
     List<String> list = new ArrayList<String>();
            list.add("A");
            list.add("B");
            list.add("C");
            System.out.println(list);
            list.add(3, "F");
            System.out.println(list);
            
    #运行结果: [A, B, C, F]
    
    #通过set在当前集合的第四个位置插入F
     List<String> list = new ArrayList<String>();
            list.add("A");
            list.add("B");
            list.add("C");
            System.out.println(list);
            list.set(3, "F");
            System.out.println(list);
            
    #运行结果: 抛出NullPointerException

    以上就是java中List中set方法和add方法的区别是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:亿速云,如有侵犯,请联系admin@php.cn删除
    专题推荐:Java list set
    上一篇:Java打印数组的方法有哪些 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java泛型接口的使用注意事项是什么• java如何求数值型数组中元素的最大值、最小值、平均数、总和等操作• java如何通过字节流实现文件的拷贝• java中wait调用中断怎么解决• Java设计模式的适配器模式怎么实现
    1/1

    PHP中文网