Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    44

    ricerca in un array

    ecco un'altra domandina da porvi:

    io ho un array di stringhe e vorrei creare un semplice metodo java che mi permetta di effettuare una ricerca all'interno di questo array (date ovviamente delle parole chiavi) e che mi restituisca l'indice(o gli indici) dell'elemento dell'array.

    ne esistono di già fatti?

    grazie mille

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Prova a controllare la classe Arrays del package java.util.

    Ad ogni modo, non è difficile costruire un metodo che lo faccia in tempo O(n): scorri tutto l'array e confronti ciascun elemento con quello che stai cercando (e ti fermi se l'hai già trovato o sei arrivato alla fine).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    public int getPosizione (String stringaDaCercare, String [] arrayListe){
    int posizione = -1;
    for (int i=0; i<arrayListe.size();i++){
    if (arrayListe[i].equals(stringaDaCercare)){
    posizione = i;
    }
    }
    return posizione;
    }

    Questo metodo ti restituisce la posizione dell'elemento oppure -1 se non lo trova in elenco.

    Ciao!

  4. #4
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    Originariamente inviato da Phobox
    che mi restituisca l'indice(o gli indici)

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: ricerca in un array

    Originariamente inviato da Phobox
    che mi restituisca l'indice(o gli indici)
    Basta una leggera modifica:
    codice:
    public int[] getPosizioni (String stringaDaCercare, String [] arrayListe){
       Vector v = new Vector();
       int posizione = -1;
       for (int i=0; i<arrayListe.size();i++){
          if (arrayListe[i].equals(stringaDaCercare)){
             v.add( new Integer(i) );
          }
       }
       int [] ret = null;
       if (v.size() > 0) {
          ret = new int[v.size()];
          for(int i=0; i<ret.length; i++) {
             ret[i] = ((Integer) v.elementAt(i)).intValue();
          }
       } else {
          ret = new int[1];
          ret[0] = -1;
       }
       return ret;
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.