Hvordan sjekke om to matriser inneholder de samme elementene i Java

Hvordan sjekke om to matriser inneholder de samme elementene i Java
I Java -programmering kan det være tilfeller der det er krav for utvikleren å utelate gjentatte oppføringer for å effektivisere kodekompleksiteten. For eksempel å eliminere de identiske verdiene på forskjellige kodeplasser ved å sortere dem. I slike scenarier er det å sjekke om to matriser inneholder identiske elementer i Java til stor hjelp til å analysere de gjentatte og unødvendige verdiene.

Denne artikkelen vil utdype tilnærmingene for å sjekke om to matriser akkumulerer identiske elementer i Java.

Hvordan sjekke om to matriser inneholder de samme elementene i Java?

For å sjekke om to matriser akkumulerer de samme elementene i Java, bruk følgende tilnærminger kombinert med “Matriser.sortere()”Og“Matriser.toString ()”Metoder:

  • er lik()”Metode.
  • DeepEquals ()”Metode.

Før du fortsetter til tilnærmingene, må du huske å inkludere følgende pakke for å jobbe med "Matriser”:

Importer Java.util.Matriser;

Tilnærming 1: Sjekk om to matriser inneholder de samme elementene i Java ved hjelp av “Array.lik () ”-metode

Matriser.sortere()”Metode kan brukes til å sortere en matrise fullstendig eller en del av den ved å spesifisere start- og sluttindeksene og“Matriser.er lik()”Metodekontroller om de to matriser er like eller ikke. “Matriser.toString ()”Metode i Java returnerer imidlertid den oppgitte verdien i"streng”Format.

Disse tilnærmingene kan brukes i kombinasjon for å sortere matriseelementene først, transformere dem til strengrepresentasjon, og deretter se etter identiske elementer i begge matriser.

Syntaks

Array.sorter (matrise, start, slutt);

I syntaks ovenfor:

  • Array”Refererer til matrisen som må sorteres.
  • start”Er startindeksen fra hvor du skal sette i gang sortering.
  • slutt”Tilsvarer indeksen der sorteringen må avsluttes.

Offentlig statisk boolsk lik (int [] a, int [] a2)

Her, “en”Og“A2”Pek på matriser som må testes for likhet.

offentlig statisk streng ToString (int [] x)

I denne syntaksen:

  • int [] x”Angir matrisen som strengrepresentasjonen må returneres.

Eksempel

La oss oversikt følgende eksempel:

offentlig klasse samme elementer
public static void main (String args [])
int [] array1 = 2, 1, 3;
int [] array2 = 3, 2, 1;
System.ute.Println ("Den første matrisen er:"+Arrays.toString (array1));
System.ute.Println ("Den andre matrisen er:"+Arrays.toString (array2));
Matriser.sorter (Array1);
Matriser.sorter (Array2);
System.ute.Println ("Den sorterte første matrisen er:"+Arrays.toString (array1));
System.ute.Println ("Den sorterte andre matrisen er:"+Arrays.toString (array2));
System.ute.println ("Finnes matriser de samme elementene? ""
+Matriser.lik (Array1, Array2));

I denne koden, bruk følgende trinn:

  • For det første, erklære to matriser av “int”Datatyper som har identiske elementer, men i forskjellig rekkefølge og viser dem.
  • Etter det, bruk "sortere()”Metode to ganger for å sortere begge de deklarerte matriserene.
  • Nå, bruk “toString ()”Metode for å returnere de sorterte matriser i form av“Streng”.
  • Til slutt, sjekk for de inneholdte samme elementene i begge matriser via "er lik()”Metode.

Produksjon

I denne utgangen kan det observeres at matriseelementene er sortert og sjekket på riktig måte.

Tilnærming 2: Sjekk om to matriser inneholder de samme elementene i Java ved å bruke “Arrays.DeepEquals () ”-metoder

Matriser.DeepEquals ()”Metoden brukes til å sjekke om to enkelt- eller flerdimensjonale matriser er like eller ikke. I dette tilfellet kan denne metoden imidlertid brukes for å sjekke de endimensjonale strengene.

Syntaks

Public Static Boolean DeepEquals (Object [] OB1, Object [] OB2)

I ovennevnte syntaks, “ob1”Og“ob2”Samsvarer med matriser som må sjekkes for likhet.

Eksempel

La oss gå gjennom det eksemplet under levert:

offentlig klasse samme elementer2
public static void main (String args [])
String [] array1 = "Harry", "David", "Tim";
String [] Array2 = "David", "Tim", "Harry";
System.ute.Println ("Den første matrisen er:"+Arrays.toString (array1));
System.ute.Println ("Den andre matrisen er:"+Arrays.toString (array2));
Matriser.sorter (Array1);
Matriser.sorter (Array2);
System.ute.Println ("Den sorterte første matrisen er:"+Arrays.toString (array1));
System.ute.Println ("Den sorterte andre matrisen er:"+Arrays.toString (array2));
boolsk resultat = matriser.DeepEquals (Array1, Array2);
System.ute.println ("Finnes matriser de samme elementene? "+resultat);

I henhold til dette kodebiten, utfør følgende trinn:

  • Først av alt, erklære to “Streng”Arrays har de uttalte strengverdiene.
  • I neste trinn, på samme måte, bruk "toString ()”Metode og vise matriser.
  • Nå, på samme måte, bruk "sortere()”Metode med hver av de definerte matriser for å sortere matriseelementene.
  • Til slutt, bruk "DeepEquals ()”Metode for å bruke en sjekk på de identiske elementene i matriser, som argument.

Produksjon

I dette utfallet kan det antydes at det tilsvarende utfallet mot den anvendte sjekken returneres.

Merk: Hvis sjekken for de identiske elementene blir brukt før du sorterer matriseelementene, returnerer begge de diskuterte tilnærmingene "falsk”Resultat.

Konklusjon

For å sjekke om to matriser akkumulerer de samme elementene i Java, bruk "Matriser.sortere()”Og“Matriser.toString ()”Metoder kombinert med“Matriser.er lik()", eller "Matriser.DeepEquals ()”Metoder. Disse tilnærmingene kan brukes på først, sorterer matriser og deretter returnere et boolsk utfall basert på den anvendte sjekken. Denne bloggen demonstrerte å sjekke for identiske elementer i de to matriser.