Java >> Java tutorial >  >> Java

Array-indeks i Java | Find Array-indeks for et element i Java

Jeg håber, du har lavet en undersøgelse om Java Array. Denne vejledning dækker Advanced Array-indeksering. Array-indeks i Java grund- og hovedkoncept, hvor hvert element har sit eget indeksnummer.

Indeksering i Array startes fra 0. I denne øvelse lærer du om Java Array-indeksering og finde Array-indekset for et element.

Grundlæggende om Array-indeks i Java:

Array-indeksering starter fra 0, se dette eksempel. Udskriv array med indeksnummerprogram.

Et simpelt hack her brugte vi, at køre en for-løkke brugte en array-længde. Udskriv derefter loop-variablen og værdien af ​​elementet. Du kan gøre det på samme måde med andre Java Controle-sætninger.

public class ArrayIndexingExample {

    public static void main(String[] args) {
        int array[] = {1, 9, 0};

        for (int i = 0; array.length > i; i++) {

            System.out.println(i + " Index number Element is " + array[i]);
        }
    }
}

Output: 0 Indeksnummer Elementet er 1
1 Indeksnummer Elementet er 9
2 Indeksnummer Elementet er 0

Lad os begynde at finde array indexofet element i Java

Java ArrayList har en indexOf-metode. Hvor i Java Arrays har ingen sådan metode? Så med programmering kan du få det gjort.

Et øverste eksempel er blot at køre en løkke og udskrive indeks med elementet. Men hvad hvis du vil have adgang til et bestemt elementindeksnummer i Java Array. Lad os se mange metoder (måde at opnå) på det.

  • Lineær søgning
  • Stream API
  • Konverter til liste (ArrayList)
  • Binær søgning
  • Guava

Lineær søgning

Find et Array Element-indeks med lineær søgealgoritme kompleksitet – O(N) .

Eksempel på Primitive Array.

public class FindIndexExample {

    public static void main(String[] args) {
        int array[] = {1, 9, 0, 3, 4};

        int index = findIndex(array, 9);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        for (int i = 0; i < a.length; i++)
            if (a[i] == target)
                return i;

        return -1;
    }
}

Output: 1

Stream API

Streamen er et nyt abstrakt lag introduceret i Java 8.

import java.util.stream.IntStream;

public class IndexExample {

    public static void main(String[] args) {
        int array[] = {1, 9, 0, 3, 4};

        int index = findIndex(array, 0);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        int len = a.length;
        return IntStream.range(0, len)
                .filter(i -> target == a[i])
                .findFirst() // first occurence
                .orElse(-1); // No element found
    }
}

Output: 2

Konverter til liste (ArrayList)

Hvorfor konvertere? Fordi List har metode indexof, som finder et indeks for elementet.

import java.util.Arrays;
import java.util.stream.Collectors;

public class IndexExample {

    public static void main(String[] args) {
        int array[] = {1, 0, 3, 4, 9};

        // find the index of 9
        int index = findIndex(array, 9);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        return Arrays.stream(a) 					// IntStream
                .boxed()						// Stream<Integer>
                .collect(Collectors.toList())   // List<Integer>
                .indexOf(target);
    }
}

Output: 4

Binær søgning

Du kan bruge en binær søgealgoritme, men kan kun bruges i det array, der er sorteret . Tjek dette eksempel for at finde Array-indekset med implementeringen af ​​binær søgning.

Kompleksitet – O(log n)

import java.util.Arrays;

public class IndexExample {

    public static void main(String[] args) {
        int array[] = {1, 0, 3, 4, 9};

        // find the index of 3
        int index = findIndex(array, 3);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        int index = Arrays.binarySearch(a, target);
        return (index < 0) ? -1 : index;
    }
}

Output: 2

Guava-bibliotek

Guava er et open source-bibliotek udviklet af Google, som er baseret på Java.

Hjælpeklassen har en indexOf() metode, som returnerer indekset for det første udseendeelement i arrayet.

import com.google.common.primitives.Ints;

public class IndexExample {

    public static void main(String[] args) {
        int array[] = {1, 0, 3, 4, 9};

        // find the index of 4
        int index = findIndex(array, 4);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        return Ints.indexOf(a, target);
    }
}

Output: 3

Sp:Hvordan finder man indekset for et element i heltalsarray i java?

Svar: Det kan være dit interviewspørgsmål som dette:"Givet en matrix af N elementer og et element K, find indekset for et matrixelement i Java"

Øvre alle metoder er en måde at gøre det på.

Kommenter, hvis du har en ny måde at gøre det på eller er i tvivl.


Java tag