Zdravím všechny,
potřeboval bych pomoci s jednou domácí úlohou.
A sice jak ze seznamu odeberu prvek obsahující dané slovo a jak zjistím zda ho seznam obsahuje.
Snažím se všelijak, ale ke kloudnému výsledku se ne a ne dobrat.
Děkuju všem co pomůžou.
import java.util.*;
public class Vlacek {
private class Vagonek {
public String hodnota;
public Vagonek dalsi;
}
Vagonek lokomotiva;
public Vlacek(){
lokomotiva = new Vagonek();
lokomotiva.hodnota = "lokomotiva";
lokomotiva.dalsi = null;
}
public void vytvorVlacek(String[] hodnoty){
for(int i=hodnoty.length-1; i>=0; i--){
this.pripojVagonekNaZacatekVlaku(hodnoty[i]);
}
}
public void pripojVagonekNaKonecVlaku(String hodnota){
Vagonek novy=new Vagonek();
novy.hodnota=hodnota;
novy.dalsi=null;
Vagonek aktualni=lokomotiva;
while(aktualni.dalsi!=null){
aktualni=aktualni.dalsi;
}
aktualni.dalsi=novy;
}
public void pripojVagonekZaVagonek(String pripojujemZaHodnotu, String novaHodnota){
Vagonek novy=new Vagonek();
novy.hodnota=novaHodnota;
novy.dalsi=null;
Vagonek aktualni=lokomotiva;
while(aktualni!=null && !aktualni.hodnota.equals(pripojujemZaHodnotu)){
aktualni=aktualni.dalsi;
}
if(aktualni!=null){
novy.dalsi=aktualni.dalsi;
aktualni.dalsi=novy;
}
}
public void pripojVagonekNaZacatekVlaku(String hodnota){
Vagonek puvodniPrvniVagonek=lokomotiva.dalsi;
Vagonek novy=new Vagonek();
novy.hodnota=hodnota;
novy.dalsi=puvodniPrvniVagonek;
lokomotiva.dalsi=novy;
}
public void vypis(){
Vagonek aktualni=lokomotiva.dalsi;
while(aktualni!=null){
System.out.print(aktualni.hodnota+" ");
aktualni=aktualni.dalsi;
}
System.out.println();
}
//do teto funkce nezapomente vyplnit sve jmeno a prijmeni
public String mojeJmeno() {
String jmeno = "Lubos Beran";
System.out.println(jmeno);
return jmeno;
}
//zjistěte kolik vagónku obsahuje tato instance vláčku
//lokomotiva se nepočítá do počtu vagónků
public int urciPocetVagonku(){
Vagonek aktualni=lokomotiva.dalsi;
int pocet = 0;
while(aktualni!=null){
aktualni = aktualni.dalsi;
pocet++;
}
return pocet;
}
//zjistěte jestli vláček obsahuje vagónek se zadaným obsahem
public boolean vlacekObsahujeVagonek(String obsahVagonku){
return true;
}
//přidejte do vláčku jeden vagónek se zadaným obsahem na zadanou pozici
//lokomotiva je na pozici 0, první vagónek na pozici 1, ...
//pokud není vláček dostatečně dlouhý, aby bylo možné na zadanou pozici přidat vagónek, nic nepřidávejte
public void pridejVagonekNaPozici(int pozadovanaPozice, String novaHodnota){
int pocet = urciPocetVagonku();
Vagonek novy = new Vagonek();
novy.hodnota = novaHodnota;
novy.dalsi = null;
int cislo = pozadovanaPozice;
if(cislo<pocet){
int k=2;
Vagonek aktualni = lokomotiva.dalsi;
while (k != cislo){
aktualni = aktualni.dalsi;
k=k+1;
}
novy.dalsi = aktualni.dalsi;
aktualni.dalsi = novy;
} else {
System.out.println("Nelze");
}
}
//odeberte z vláčku vagónek obsahující zadanou hodnotu
// pokud ani jeden vagónek neobsahuje zadanou hodnotu, nic neodebírejte
public void odeberVagonekObsahujici(String hodnota){
}
}
public class TridaObsahujiciFunkciMain {
public static void main(String[] args) {
String[] polozky={"zirafa","slon","lev"};
Vlacek mujVlacek=new Vlacek();
mujVlacek.vytvorVlacek(polozky);
mujVlacek.pripojVagonekNaKonecVlaku("zebra");
mujVlacek.pripojVagonekZaVagonek("lev","hroch");
int umisteni = 4;
String Vagonek = "vlak2";
mujVlacek.pridejVagonekNaPozici(umisteni,Vagonek);
mujVlacek.vypis();
System.out.println(mujVlacek.urciPocetVagonku());
}
}