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

Java——List:list.add(index, element)和list.set(index, element)的区别的更多相关文章

  1. 论Java的ArrayList.add(e)和C++的vector.push_back(e)的区别

    Java的ArrayList和C++的vector很类似,都是很基本的线性数据结构.但是他们的表现却不同. 在工作中碰到一个问题就是,搞不清楚到底传进去的是一个新对象,还是当前对象的引用! 经过实战分 ...

  2. java Queue中 add/offer,element/peek,remove/poll区别

    转自https://blog.csdn.net/u012050154/article/details/60572567 java Queue中 add/offer,element/peek,remov ...

  3. Java进阶(二十四)Java List集合add与set方法原理简介

    Java List集合add与set方法原理简介 add方法 add方法用于向集合列表中添加对象. 语法1 用于在列表的尾部插入指定元素.如果List集合对象由于调用add方法而发生更改,则返回 tr ...

  4. 【转】java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

    最近在配置最新的ssh(struts2.3.16.3+hibernate4.3.7+spring4.1.2)的时候遇到的这个错误提示,后来在网上找了半天都不能解决,虽然有个说法是model对象用这样@ ...

  5. Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index

    1.错误描述 WARN:2015-05-01 16:45:37[main] - Exception encountered during context initialization - cancel ...

  6. Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference

    尝试在一个空的对象引用上引用boolean java.util.List.add()这个方法: 错误例子: private ArrayList<String> classList; cla ...

  7. Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:25:5-27:41 to override.

    记录下来少走些坑吧 一:不管用 tools:replace="android:icon,android:theme" xmlns:tools="http://schema ...

  8. Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null

    1.Android Studio报错 Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' ...

  9. resin下发布项目报错java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index

    我的resin版本为4.0.56; 项目在tomcat下启动正常,打包在resin下发布时报错:java.lang.NoSuchMethodError: javax.persistence.Table ...

  10. 问题记录——java.lang.IllegalArgumentException: Illegal character in scheme name at index 0

    以下http请求报错是因为,请求的地址前面有个空格.... 2019-01-09 03:30:23,154 ERROR [business.modules.merchantreportresult.s ...

随机推荐

  1. C# 如何批量修改集合元素的属性值?

    我们往往会遇到要批量修改集合中元素的值,最笨的办法就是foreach循环,但本文介绍几种优雅的方法. 首先,我们准备好元素类和初始集合: 下面就是几种方法,目前并没有对性能做进一步的测试,有兴趣的童鞋 ...

  2. CSS3实现GIF动画

    来自 dribbble 某位大师的作品,GIF图中一个小女孩抱着一只猫在跑步,非常可爱,动作轻巧,过渡自然.DEMO下载 回到项目需求,要实现类似上图卡通人物跑步动画,分析结果如下: 1.跑步动画可以 ...

  3. 参考termux中包管理命令的伪装修改的arch版包管理命令

    #!/bin/bash set -e -u show_help() { echo "This help message is useless, please read the content ...

  4. hdu4870 高斯消元

    题意 一个人打比赛 ,rating 有p的概率 为加50分 有1-p的概率为 x-100分 最大值为 1000 最小值为0 有两个号 每次拿较小的号来提交 , 计算最后到达 1000分得期望场数是多少 ...

  5. python读取excel中单元格的内容返回的5种类型

    (1) 读取单个sheetname的内容. 此部分转自:https://www.cnblogs.com/xxiong1031/p/7069006.html python读取excel中单元格的内容返回 ...

  6. Robot Framework 遇到过的错误 1. Chrome打开无法数据网址,地址栏只显示data:,

    问题描述:用RF打开网页时未跳转到指定网址,而是显示data:, *** Settings ***Library SeleniumLibrary *** Test Cases ***Login_Tes ...

  7. Linux——CentOS7安装gcc编译器详解

    使用yum安装gcc 使用yum命令安装还是非常easy的. yum -y install gcc gcc-c++ kernel-devel //安装gcc.c++编译器以及内核文件 手动安装gcc ...

  8. Linux服务器下jdk 安装与环境变量的配置

    1,Oracle 官网下载jdk Linux版本 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...

  9. MapReduce的map个数调节 与 Hadoop的FileInputFormat的任务切分原理

    在对日志等大表数据进行处理的时候需要人为地设置任务的map数,防止因map数过小导致集群资源被耗光.可根据大表的数据量大小设置每个split的大小. 例如设置每个split为500M: set map ...

  10. flask 使用Flask-WTF处理表单

    使用Flask-WTF处理表单 扩展Flask-WTF继承了WTFforms,使用它可以在flask中更方便的使用WTForms.Flask-WTF将表单数据解析.CSRF保护.文件上传等功能与Fla ...