Een eenvoudige vector in Java die een aantal lastige uitvoer oplevert

Een zeer eenvoudige vector in Java die de uitvoer produceert die enigszins moeilijk te volgen is. Het codefragment is zoals hieronder weergegeven.

package main;

import java.util.Vector;

final public class Main
{
    public static void main(String[] args)
    {        
        Vector r = new Vector();
        r.addElement("O");
        r.addElement("Y");
        r.insertElementAt("A",0);
        r.addElement("B");
        r.addElement("F");
        r.addElement("I");
        r.addElement("X");
        r.removeElement("F");
        r.insertElementAt("G",3);

        System.out.println(r);
    }
}

De bovenstaande eenvoudige Java-code produceert de uitvoer die anders is dan hij lijkt te zijn. De feitelijke uitvoer die de bovenstaande code produceert is verrassend, [A, O, Y, G, B, I, X] . Eigenlijk bevat het 9 elementen. De uitvoer bevat echter slechts 7 elementen. Hoe?

2
OMG ook grappig !!
toegevoegd de auteur Hovercraft Full Of Eels, de bron
Ik ben verdwaald, waar zijn negen dingen? Ben ik stom?
toegevoegd de auteur Dave Newton, de bron
Huh? Je hebt 7 dingen toegevoegd, er één verwijderd en er nog een toegevoegd. Mijn rekenkunde zegt dat dit gelijk is aan ... 7.
toegevoegd de auteur Brian Roach, de bron
@DaveNewton - Nee, ik denk dat uw rekenkunde ook werkt zoals bedoeld.
toegevoegd de auteur Brian Roach, de bron

2 antwoord

Is het u opgevallen dat een van de codes removeElement was?

6
toegevoegd
:: zucht :: Fijn. +1 om het voor de hand liggende te benadrukken. Hoewel het bijna als vreemdgaan is :-p
toegevoegd de auteur Brian Roach, de bron

Eigenlijk zou je de statement removeElement ("F") vergeten zijn. Omdat het genoemd wordt, werd het verwijderd en de resterende elementen alleen getoond. Als je deze regel becommentarieert en het opnieuw probeert, zal je verwachte resultaat verschijnen. Bedankt!

0
toegevoegd