Componente text

Enunt

interface componentaText{

int numarAparitii(String cuvant);

}

class Cuvant implements componentaText{

private String cuvant;

public Cuvant(String cuvant){

this.cuvant=cuvant;

}

public int numarAparitii(String cuvant){

if(this.cuvant.equals(cuvant))

return 1;

else

return 0;

}

}

class Tabel implements componentaText{

private Cuvant[] cuvinte;

public Tabel(Cuvant[] cuvant){

this.cuvinte=new Cuvant[cuvant.length];

for(int i=0;i<cuvant.length;i++)

if(cuvant[i]!=null)

this.cuvinte[i]=cuvant[i];

}

public int numarAparitii(String cuvant){

int s=0;

for(int i=0;i<cuvinte.length;i++){

s=s+this.cuvinte[i].numarAparitii(cuvant);

}

return s;

}

}

class Selectie implements componentaText{

private static final int nrMaximComponente=100;

private componentaText[] componente;

private int nrComponente=0;

public Selectie(){

componente=new componentaText[nrMaximComponente];

}

public void adaugaComponenta(componentaText componenta){

if(nrComponente==nrMaximComponente){

System.out.println("Numarul maxim de componente a fost deja atins");

}

else{

componente[nrComponente]=componenta;

nrComponente++;

}

}

public int numarAparitii(String cuvant){

int s=0;

for(int i=0;i<nrComponente;i++)

s=s+this.componente[i].numarAparitii(cuvant);

return s;

}

}

public class Main {

public static void main(String[] args) {

Cuvant[] cuvinte=new Cuvant[]{new Cuvant("Hello"), new Cuvant("world"),new Cuvant("!"),new Cuvant("Hello")};

componentaText componenta=new Tabel(cuvinte);

Selectie selectie=new Selectie();

selectie.adaugaComponenta(componenta);

System.out.println(selectie.numarAparitii("Hello"));

System.out.println(selectie.numarAparitii("world"));

}

}