Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Ricerca su un vector

  1. #1

    Ricerca su un vector

    Salve... ho cercato su Internet a anche qui nel forum, ma non capisco come fare una qualsiasi ricerca combinata all'interno di un Vector.

    Io ho un Vector di nome "dati", composto da:
    - domanda
    - una serie di risposte
    - una risposta corretta
    - un punteggio
    - un argomento

    Devo poter fare una ricerca combinata... nel senso, poter cercare per "argomento", per "punteggio" ( da ... x a y per esempio) e poi per sottostringhe.

    Al momento non ho molte idee, qualcuno mi può dare un suggerimento?

    Ciao!

  2. #2
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    ciao, il vector purtroppo te lo devi sfogliare tutto..

    fai un ciclo, ti recuperi l'elemento del vettore e a seconda dei tuoi if di ricerca decidi se mettere o meno l'elemento del vettore in un altro vettore "risultati"..

    mi sa che è l'unica
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    In pratica vuoi fare quell che fa Access quando fai una ricerca su "parte del campo" ?

    La tua classe Dati la conosci.
    Potresti dotare la classe di metodi di ricerca per sottostrighe nei suoi campi.
    E se non vuoi dover modificare ogni volta, all'aggiunta di un nuovo eventuale campo, potresti usare la reflection per recuperare tutti i metodi "getter", e tramite questi i campi della classe, verificare che oggetto ottieni, e poi decidere la strategia di ricerca.
    al volante son nervoso

  4. #4
    Eh si io volevo fare come dicevi tu morphy! Solo che metterlo in pratica mi viene un po' difficile? Ho provato a cercare degli esempi ma purtroppo niente di niente!

  5. #5
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    ok ok ti do una mano

    codice:
    // definisco vettore risultati
    Vector risultati = new Vector();
    Dati datoTemp = null;
    // ciclo del vector
    for(int j=0;j<tuoVector.size();j++){
    
       // recupero il dato
       datoTemp = (Dati)tuoVector.elementAt(j);
    
       // il blocco successivo lo devi ripetere per ogni condizione che vuoi ricercare
    
       // se devo cercare per argomento
       if (tuaRicercaArgomento!=null && !tuaRicercaArgomento.equals("")){
          // se trovo l'argomento
          if(datoTemp.getArgomento().indexOf(tuaRicercaArgomento) > -1){
                risultati.add(datoTemp);
                continue;
          }
       }
    
    }
    prendilo con le pinze ma dovrebbe andare..
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  6. #6
    Grazie!!
    Quindi sono andato avanti... e ho fatto così.

    codice:
    	        // definisco vettore risultati
    	   Vector risultati = new Vector();
    	   
    		// ciclo del vector
    	   for (int j=0; j<domanda.size(); j++) {
    	 
                   // richiama i parametri del vector domande
    	   argument argumentTemp = null;
    	   text textTemp = null;
    	   points pointsTemp = null;
    	   
    	   
    	   argumentTemp = (argument)domande.elementAt(j);
    	   textTemp = (text)domande.elementAt(j);
    	   pointsTemp = (points)domande.elementAt(j);
    	   
    	   System.out.println("Inserisci la chiave di ricerca: ");
    	   String key = Input.readString();
    	   
    	   System.out.println("Inserisci l'intervallo di punteggio: (0-100 per filtrarli tutti)");
    	   int punteggioDa = Input.readInt();
    	   int punteggioA = Input.readInt();
    	   
    	   System.out.println("Inserisci una stringa di testo: ");
    	   String substring = Input.readString();
    	   
    	   if (key!=null && !key.equals("")){ 
    		      if(argumentTemp.getArgument().indexOf(key) > -1){
    		            risultati.add(argumentTemp);
    		            continue;
    		     
    	   if((pointsTemp.getPoints < punteggioA) && (pointsTemp.getPoints > punteggioDa)){
    		    	   risultati.add(pointsTemp);
    	               continue;
    	               
                          // non mi è chiara molto questa parte sopra... ora sto passando a tentare di applicare le substring       
    		      
    	   }
    
    	   }

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.