A distanza di qualche mese dal corso universitario che ho seguito, questo pomeriggio ho trovato delle difficoltà che mi hanno innervosito non pocoVi scrivo qui di seguito le classi e lascio a fine post le domande!!Ringrazio quanti mi sapranno chiarire i dubbi che mi assillano da ore!!!
Esercizio:Analizzare un testo e vedere le parole che contiene.(ho volutamente tralasciato l'uso della classe Vector che semplifica di gran lunga il problema)
Partendo da questa classe Abstract:
package poo.tabella;
public abstract class Tabella{
protected int cardinalità=0;//numero di Objs presenti
public int cardinalità(){
return cardinalità;
}
public abstract boolean esiste(string elem);
public abstract void rimuovi(String elem);
public abstract void inserisci(String elem);
public abstract void inserisci(String elem,boolean sempre);
public abstract void visualizza();
}//fine classe
Ridefinisco più nel dettaglio la classe Tabella!
package poo.tabella;
public class TabellaOrdinata extends Tabella{
protected int n;
protected String[]elenco;
protected int pos;
public TabellaOrdinata(int n){
this.n=n;
elenco=new String[n];
}
public void visualizza(){
for(int i=0;i<cardinalità;i++)
System.out.println(elenco[i]);
}
public boolean esiste(string e){
int inf=0;
int sup=n-1;
boolean trovato=false;
String El=e.toUpperCase();
while(inf<=sup && !trovato){
pos=(inf+sup)/2
if(elenco[pos].equals(El)){
trovato=true;
}
else
if(elenco[pos].compareTo(El)>0)
sup=pos-1;
else
inf=pos+1;
}
........//continuazione programma
Sto cercando di capire come funziona il metodo ESISTE della classe TABELLAORDINATA
Domande
1-"if(elenco[pos].compareTo(El)>0)"
Il compareTo con quale criterio può decidere se una stringa è "maggiore" di 1 altra...In base ai caratteri che la compongono?????E di quale utilità è il compareTo in questo contesto!!
2-A livello pratico non riesco a capire come gira questo tipo di metodo....ho scritto negli appunti che è 1 tipo di ricerca binaria...ma nonostante mi ci metta di buona volontà non riesco a capirne l'esecuzione effettiva
Un Enorme grazie a quanti mi daranno una mano...visto che ho l'esame di Programmazione agli Oggetti a breve
/kiZz