Arrays er kjernekonseptet for ethvert programmeringsspråk inkludert Java. I Java gir en forhåndsdefinert klasse -matrise mange metoder for å utføre forskjellige oppgaver eller operasjoner på matriser som sortering, Traversing, Searching, etc. Men du vil bli overrasket over å vite at matriseklassen ikke ga noen metode for å slette et array -element. Så hvordan du sletter matriseelementer i Java?
Vi vil! Vi kan ta i bruk forskjellige tilnærminger for å slette matriseelementene i Java, for eksempel å bruke flere matriser, ved hjelp av ArrayList, etc.
Denne artikkelen vil hjelpe oss med å slette matriseelementer og gjøre det, den vil forklare de nedenfor-listede metodene:
- Hvordan du sletter array element ved hjelp av fjerne () metode
- Hvordan slette arrayelement ved hjelp av flere matriser
- Hvordan slette arrayelement ved hjelp av Java8 -strømmer
Så la oss begynne!
Hvordan du sletter array element ved hjelp av fjerne () metode
Det er en forhåndsdefinert metode i ArrayList -klassen som kan brukes til å slette Array's Elements. For å slette matriserens element ved hjelp av fjerne() Metode, for det første må vi konvertere matrisen til en arraylist. Når matrisen er konvertert til en ArrayList, kan vi bruke Fjern () -metoden til ArrayList -klassen for å slette matriseelementene.
Eksempel
La oss vurdere kodebiten nedenfor for å forstå hvordan du bruker Fjern () Metode for ArrayList -klasse med matriser for å slette et spesifikt element i en matrise:
offentlig klasse deleteArrayElement
offentlig statisk int [] deleteElement (int [] originalArray, int DeleteIndex)
if (originalArray == null || deleteIndex < 0 || deleteIndex >=
OriginalArray.lengde)
return originalarray;
Liste
elementlist = intStream.av (originalarray).bokset () .samle (samlere.ramse opp());
elementlist.Fjern (DeleteIndex);
Returnerelementliste.strøm().Maptoint (Heltall :: IntValue).toArray ();
public static void main (String [] args)
int [] originalArray = 30, 25, 50, 80, 20, 60;
System.ute.Println ("Original Array:" + Arrays.toString (originalArray));
Skannerinngang = ny skanner (system.i);
System.ute.println ("Angi indeksen du vil slette");
int DeleteIndex = input.nextInt ();
OriginalArray = DeleteElement (OriginalArray, DeleteIndex);
System.ute.Println ("Modified Array:" + Arrays.toString (originalArray));
I dette Java -programmet utførte vi følgende oppgaver:
- Opprettet et heltallsarray som heter “OriginalArray” og tildelt seks elementer til den matrisen.
- Benyttet Skanner klasse for å få matrisen indeks som skal slettes fra brukeren.
- Opprettet en metode som heter deleteElement() som vil returnere OriginalArray Hvis matrisen er tom eller hvis matrisindeksen er utenfor rekkevidde.
- Opprettet en arraylist som heter “elementlist”Det holder elementene i“OriginalArray”.
- Deretter benyttet vi fjerne() Metode for å slette den gitte indeksen.
- Etterpå benyttet vi Maptoint () og ToArray () Metoder for å lage en ny matrise.
Som et resultat vil vi få følgende utdata:
Utgangen viser at Fjern () -metoden lyktes med å slette det spesifiserte arrayelementet fra den opprinnelige matrisen.
Hvordan bruke flere matriser for å slette matriseelementer
I Java kan vi bruke flere matriser for å slette et matriselement. Det er en av de enkleste tilnærmingene for å slette et matriseelement som sier:
- Finn det målrettede elementet på den spesifikke indeksen.
- Slett det elementet.
- Kopier de gjenværende elementene til den nye matrisen.
På denne måten vil den nyopprettede matrisen ha en størrelse en mindre enn den originale matrisen.
Eksempel
La oss vurdere følgende kodebit for den dype forståelsen av dette konseptet:
Pakke sletteknær;
Importer Java.util.Matriser;
Importer Java.util.Skanner;
offentlig klasse deleteArrayElement
offentlig statisk int [] deleteElement (int [] originalArray, int DeleteIndex)
if (originalArray == null || deleteIndex < 0 || deleteIndex >= originalArray.lengde)
return originalarray;
int [] SecondArray = New Int [originalArray.lengde - 1];
for (int i = 0, j = 0; i < originalArray.length; i++)
if (i == deleteIndex)
Fortsette;
SecondArray [J ++] = originalArray [i];
return SecondArray;
public static void main (String [] args)
int [] originalArray = 30, 25, 50, 80, 20, 60;
System.ute.Println ("Original Array:"+ Arrays.toString (originalArray));
Skannerinngang = ny skanner (system.i);
System.ute.println ("Angi indeksen du vil slette");
int DeleteIndex = input.nextInt ();
OriginalArray = DeleteElement (OriginalArray, DeleteIndex);
System.ute.Println ("Modified Array:" + Arrays.toString (originalArray));
Ovennevnte kodebit utførte følgende funksjonaliteter:
- Opprettet et heltallsarray som heter “OriginalArray”, benyttet Skanner klasse for å få matrisen indeks som skal slettes, og opprettet en metode som heter deleteElement() For å returnere OriginalArray I tilfelle matrisen er tom eller matrisindeksen er utenfor rekkevidde.
- Deretter opprettet vi et annet utvalg som heter “SecondArray” hvis lengde er en mindre enn den opprinnelige matrisen og kopierte alle elementene i “OriginalArray”(Unntatt det målrettede elementet/indeksen) til“SecondArray”.
- Vi benyttet for-loop for å sammenligne gjeldende indeks med indeksen som skal slettes. Hvis gjeldende indeks er lik den målrettede indeksen, vil den indeksen bli hoppet over og sløyfen vil bli flyttet til neste indeks.
- På denne måten blir det spesifiserte elementet slettet fra den gitte matrisen.
Følgende vil være utdataene for ovennevnte kodebit:
Brukeren skrev inn “2”, følgelig slettet den ovennevnte koden elementet som var til stede ved den andre indeksen (i.e. 50) Fra den originale matrisen.
Hvordan slette arrayelement ved hjelp av Java8 -strømmer
Vi kan også bruke Java8 -strømningene for å slette matriseelementene. For å gjøre det, først vil vi konvertere matrisen til en strøm, så lager vi en ny filtrert/modifisert matrise.
Eksempel
La oss vurdere kodeblokken nedenfor for å forstå hvordan du sletter arrayelementer ved hjelp av Java8 -strømmer:
offentlig klasse deleteArrayElement
offentlig statisk int [] deleteElement (int [] originalArray, int DeleteIndex)
if (originalArray == null || deleteIndex < 0 || deleteIndex >=
OriginalArray.lengde)
return originalarray;
Returner intstream.rekkevidde (0, originalarray.lengde).filter (i -> i!= DeleteIndex)
.Kart (i-> originalArray [i]).toArray ();
public static void main (String [] args)
int [] originalArray = 30, 25, 50, 80, 20, 60;
System.ute.Println ("Original Array:" + Arrays.toString (originalArray));
Skannerinngang = ny skanner (system.i);
System.ute.println ("Angi indeksen du vil slette");
int DeleteIndex = input.nextInt ();
OriginalArray = DeleteElement (OriginalArray, DeleteIndex);
System.ute.Println ("Modified Array:" + Arrays.toString (originalArray));
Ovennevnte kodeblokk utførte følgende oppgaver:
- Vi benyttet oss av Intstream.Range () Metode for å konvertere matrisen til en strøm.
- Deretter benyttet vi filter () -metoden for å fjerne den målrettede arrayindeksen.
- Til slutt benyttet vi kartet () og ToArray () metoder for å lage en ny filtrert/modifisert matrise.
Den komplette koden og tilsvarende utgang vil være noe slikt:
Slik kan vi bruke Java8 -strømningene for å slette matriseelementene.
Konklusjon
I Java kan flere tilnærminger brukes til å slette matriseelementene som Fjern () Metode for ArrayList -klasse, filter () -metode for Java8 -strømmer, etc. I Java kan flere matriser dessuten brukes til å slette et spesifikt element i en matrise. Denne oppskrivningen presenterte en detaljert guide for å slette matriseelementene i Java. For bedre forståelse forklarte det hver metode ved hjelp av passende eksempler.