Insert object to the list in the script in real-time.

Hello there, my problem is as follow:

I have a normal list.
public List targets;
I want two objects in this list, and then need to be able to update what object is in the index.
So if i have two objects in the index like:
Index 1: Object 1.
Index 2: Object 2.
Then i need to be able to update what object is in object 1 on the fly in the script, is this possible?

I tried using targets.insert(1, object3.transform), but it will keep adding objects to the list, not inserting it into just the index space.

Okay so i kinda figured out how not to make it add forever, but the thing is, i cant get it to insert and replace the current object with the object i want in there.
Thanks for taking a look at it, @F14M3THR0W3R

    // Use this for initialization
    void Start () {    
        targets.Add(puck.transform);
        targets.Add(testobject.transform);
    }
 void FixedUpdate()
    {
        //Null.
        if (targets.Count == 0)
            return;

        if (Input.GetKeyDown("space"))
        {
           //Trying to replace the object in the first index in the list with this object here.
            if (!targets.Contains(replacementObj.transform))
            targets.Insert(0, replacementObj.transform);
        }

    }