• List集合——list.add(index, element)和list.set(index, element)的区别


    add(index, element)

    • 含义:在集合索引为index的位置上增加一个元素element,集合list改变后list.size()会增加1
    • 用法
      • testList.add(index, element);

    set(index, element)

    • 含义:在集合索引为index的位置上改变一个元素,改变后的元素为element,集合list改变后list.size()不变
    • 用法
      • testList.set(index, element);
      • Integer set = testList.set(index, element);
      • 返回值:原list集合中,索引为index的元素。

    使用条件

    • 不符合条件会报错
    • add(index, element)
      • list != null
      • index需要小于等于list.size()
    • set(index, element)
      • list != null  && list.size() !=0
      • index需要小于list.size()

    例子

    • 一:add(index, element)和set(index, element)插入集合对比
      • 代码
        public class TestList {
            
            private static List<Integer> testList;
        
            public static void main(String[] args) {
                
                initList();//初始化list
                System.out.println("initList="+testList.toString());
                System.out.println("initList.size="+testList.size());
                addList();//add list
                System.out.println("addList="+testList.toString());
                System.out.println("addList.size="+testList.size());
                
                System.out.println("##############################");
                
                initList();//初始化list
                System.out.println("initList="+testList.toString());
                System.out.println("initList.size="+testList.size());
                setList();//set list
                System.out.println("setList="+testList.toString());
                System.out.println("setList.size="+testList.size());
            }
            
            /**
             * 初始化list
             */
            private static void initList(){
                testList = new ArrayList<Integer>();
                testList.add(1);
                testList.add(2);
                testList.add(3);
                testList.add(4);
            }
            
            /**
             * add list
             */
            private static void addList(){
                testList.add(2, 20);
            }
            
            /**
             * set list
             */
            private static void setList(){
                testList.set(2, 20);
            }
        }
      • 执行结果
        initList=[1, 2, 3, 4]
        initList.size=4
        addList=[1, 2, 20, 3, 4]
        addList.size=5
        ##############################
        initList=[1, 2, 3, 4]
        initList.size=4
        setList=[1, 2, 20, 4]
        setList.size=4
    • 二:set(index, element)返回值对比
      • 代码
        public class TestListTwo {
            
            private static List<Integer> testList;
        
            public static void main(String[] args) {
                
                initList();//初始化list
                System.out.println("initList="+testList.toString());
                
                Integer retValue = setList();//set list
                
                System.out.println("setList="+testList.toString());
                System.out.println("setList的返回值="+retValue);
            }
            
            /**
             * 初始化list
             */
            private static void initList(){
                testList = new ArrayList<Integer>();
                testList.add(1);
                testList.add(2);
                testList.add(3);
                testList.add(4);
            }
            
            /**
             * set list
             */
            private static Integer setList(){
                Integer retValue = testList.set(2, 20);
                return retValue;
            }
        }
      • 执行结果
        initList=[1, 2, 3, 4]
        setList=[1, 2, 20, 4]
        setList的返回值=3
    • Next
  • 相关阅读:
    CentOS安装Nginx Pre-Built
    CMake设置编译参数
    SQLServer脚本编写
    使用QNetworkAccessManager实现Qt的FTP下载服务
    使用CMD命令设置IP
    IIS6(Win2003) 使用.net 4.0 后,默认文档失效解决方案。
    windows7打印时,显示脱机,提示“服务器打印后台处理程序服务没有运行”。
    阻止浏览器自动填表
    Java经典编程题50道之四
    Java经典编程题50道之三
  • 原文地址:https://www.cnblogs.com/zuiyue_jing/p/10136347.html
Copyright © 2020-2023  润新知