java源码研究--List中的set和add方法区别

在处理一道题目是,发现他们使用了List 中的set 方法,这个方法我平时很少用到,今天来研究一下,set和add的区别

add(int index,Object obj)方法与set(int index,Object e)

我们写一个例子:

package cn.magicdu.think.collections;

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

public class ListTest {
    public static void main(String[] args) {
        List<Integer> l1 = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            l1.add(i, i + 100);
        }
        for (int i = 0; i < l1.size(); i++) {
            System.out.print("索引" + i + ":" + l1.get(i) + ",");
        }

        // List<Integer>l2=new ArrayList<>();

        for (int j = 0; j < 5; j++) {
            l1.set(j, j + 200);
        }
        for (int j = 5; j < 10; j++) {
            l1.add(j, j + 300);
        }
        System.out.println();
        for (int i = 0; i < l1.size(); i++) {
            System.out.print("索引" + i + ":" + l1.get(i) + ",");
        }
    }

}

结果:

java源码研究--List中的set和add方法区别