Het eerste element van een array verwijderen

1. Overzicht

In deze tutorial we zullen kijken hoe we het eerste element van een array kunnen verwijderen.

Daarnaast zullen we ook zien hoe het gebruik van datastructuren uit het Java Collections Framework het nog gemakkelijker maakt.

2. Met behulp van Arrays.copyOfRange ()

Allereerst, het verwijderen van een element van een array is technisch niet mogelijk in Java. Om de officiële documenten te citeren:

“Een array is een containerobject dat een vast aantal waarden van één type bevat. De lengte van een array wordt bepaald wanneer de array wordt gemaakt. Na het maken is de lengte vastgesteld. "

Dit betekent zolang we rechtstreeks met een array werken, kunnen we alleen een nieuwe array van kleinere omvang maken, die dan niet het eerste element bevat.

Gelukkig biedt de JDK een handige statische helperfunctie die we kunnen gebruiken, genaamd Arrays.copyOfRange ():

String [] stringArray = {"foo", "bar", "baz"}; String [] modifiedArray = Arrays.copyOfRange (stringArray, 1, stringArray.length);

Merk op dat deze operatie een kostprijs heeft van Aan) omdat het elke keer een nieuwe array zal maken.

Dit is natuurlijk een omslachtige manier om een ​​element uit de array te verwijderen en als u dergelijke bewerkingen regelmatig uitvoert, is het wellicht verstandiger om in plaats daarvan het Java Collections Framework te gebruiken.

3. Met behulp van een Lijst Implementatie

Om ongeveer dezelfde semantiek van de datastructuur te behouden (een geordende reeks elementen die toegankelijk zijn via index), is het zinvol om een ​​implementatie van de Lijst koppel.

De twee meest voorkomende implementaties zijn ArrayList en LinkedList.

Stel dat we het volgende hebben Lijsts:

Lijst arrayList = nieuwe ArrayList (); // vul de ArrayList List linkedList = new LinkedList (); // vul de LinkedList in

Omdat beide klassen dezelfde interface implementeren, ziet de voorbeeldcode om het eerste element te verwijderen er hetzelfde uit:

arrayList.remove (0); linkedList.remove (0);

In het geval van ArrayList, de kosten voor het verwijderen zijn Aan), terwijl LinkedList heeft een kostprijs van O (1).

Dit betekent niet dat we een LinkedList overal als standaard, aangezien de kosten voor het ophalen van een object andersom zijn. De kosten van bellen krijg ik) is O (1) in het geval van ArrayList en Aan) in het geval van LinkedList.

4. Conclusie

We hebben gezien hoe we het eerste element van een array in Java kunnen verwijderen. Daarnaast hebben we gekeken hoe we hetzelfde resultaat kunnen bereiken met behulp van het Java Collections Framework.

Je kunt de voorbeeldcode vinden op GitHub.