Gå til innhold

Finne indeks i arrays?


Anbefalte innlegg

Her er oppgaven:

 

Write three different methods for finding specific elements in an array:

 

indexOf

The indexOf method takes an int array as the first parameter and an int value as the second parameter.

It must return the index of the first element in the array where the specified int value is found, or -1 if the element is not present.

indexOfSmallest

The indexOfSmallest method takes an int array as the first parameter and an int value as the second parameter.

The method has to search through the array starting at the index specified by the second parameter and return the index of the lowest value.

lastIndexOf

The lastIndexOf method takes a String array as the first parameter and a String value as second parameter.

It must return the index of the last element in the array where it finds the specified String value, or -1 if the value is not present in the array.

 

Create an array in the main method and verify that your methods have the right behaviour, e.g. by printing out the index.

 

Hints:

Use the == operator to compare numbers, and the .equals method to compare text strings.

Lenke til kommentar
Videoannonse
Annonse

Heisann!

 

Her er mitt forslag til en veldig enkel og basic løsning til metodene dine (jeg er trøtt, men de skal fungere ;) )

 

public class IndexTing
{
public int indexOf(int[] indexArray, int indexInt){
    for(int i = 0; i < indexArray.length; i++){
        if(indexArray[i] == indexInt){
            return i;
           }
       }
       return -1;
   }
   
   public int indexOfSmallest(int[] smallArray, int smallInt){
       int smallestInt = smallArray[smallInt];
       int smallIndex = smallInt;
       for(int i = smallInt; i < smallArray.length; i++){
           if(smallArray[i] < smallestInt){
               smallIndex = i;
               smallestInt = smallArray[i];
           }
       }
       return smallIndex;
   }
   
   public int lastIndexOf(String[] inputArray, String input){
       int indexOf = -1;
       for(int i = 0; i < inputArray.length; i++){
           if(inputArray[i].equals(input)){
               indexOf = i;
           }
       }
       return indexOf;
   }
}

 

NB!: Her sjekkes det IKKE for null noen steder, men bare add en if(inputArray != null) i starten av for'en, etc.

Endret av Thomas`
Lenke til kommentar
Heisann!

 

Her er mitt forslag til en veldig enkel og basic løsning til metodene dine (jeg er trøtt, men de skal fungere ;) )

7754109[/snapback]

Dersom du hadde kalt klassen for "ArrayMethods1" i stedet så hadde du nettopp løst en av oppgavene hans i OOP-faget, som jeg regner med at han tar på NTNU :wee:

Lenke til kommentar
- "return i" i indexOf metoden er unreachable.

7754174[/snapback]

Hvorfor det?

7754366[/snapback]

 

Fordi den er i en if i en forløkke. Kommenterer du ut "return -1" vil du se at du får error. Mao -1 blir returnert uansett.

7755082[/snapback]

 

Stemmer nok ikke det du. Oppgaveteksten sier:

 

The indexOf method takes an int array as the first parameter and an int value as the second parameter.

It must return the index of the first element in the array where the specified int value is found, or -1 if the element is not present.

 

return i; der returner når den finner det første elementet i arrayen som == inten som blir tatt i mot. Og gi meg en god grunn til at metodene skal være statiske? Og grunnen til at du får error om du kommenterer ut return -1;, er fordi at da vil det ikke alltid returneres en verdi, kun når ifen valideres.

Endret av Thomas`
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...