Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Java odwołanie do elementu listy

AmadeuszFight 18 Kwi 2009 12:47 2699 1
  • #1 18 Kwi 2009 12:47
    AmadeuszFight
    Poziom 9  

    Witam wszystkich.
    Napisałem program w którym dodaje obiekty do kolejnych elementów listy
    ale utknąłem.Nie umiem sie odwołać do pola obiektu imie, typ zwierzecia, waga.Chce zeby użytkownik wpisał sam wymagane wartości.
    I mam wątpliwości co do konstruktora klasy Zwierze nie mozna go jakoś do tego wykorzystac?

    Code:


    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;


    class Zwierze {

         private String imie;
         private String typZwierzecia;
         private double waga;
         Zwierze nastepny;

               Zwierze() {       
                      }   
               Zwierze (String imieK,String typZwierzeciaK,double wagaK){

               this.imie = imieK;
               this.typZwierzecia = typZwierzeciaK;
               this.waga = wagaK;
                    }

               public String getimie(){
                     return imie;
               }
               public String gettypZwierzecia(){
                     return typZwierzecia;
               }
               public double getwaga(){
                     return waga;
               }
               public void setImie(String imie){
                     this.imie = imie;
               }
               public void settypZwierzecia(String typZwierzecia){
                     this.typZwierzecia = typZwierzecia;
               }
               public void setwaga(int waga){
                     this.waga = waga;
               }

             }


    class Lista{

          Zwierze poczatek;
          Zwierze koniec;
         
                 void addFirst(Zwierze zw){




                 
                     if (poczatek == null){
                         poczatek = koniec = zw;
                         zw.nastepny = null;
                         }
                     else {
                         zw.nastepny = poczatek;
                         poczatek = zw ;
                          }
                     }
                 void addLast(Zwierze zw){
                 
                     if (poczatek == null){
                         poczatek = koniec = zw;
                         zw.nastepny = null;
                         }
                     else {
                         zw.nastepny = null;
                         koniec = zw;
                          }
                     }                                     
           }

    public class polskiezoolista {
           
       
            static String wczytajString() throws IOException, IOException {             

                              BufferedReader wej = new BufferedReader(
                              new InputStreamReader (System.in));
                              String s;
                              s = wej.readLine();
                              return s;
                                      }
       
           
            static int wczytajInt() throws IOException {                   

                              BufferedReader wej = new BufferedReader(
                              new InputStreamReader (System.in));
                              String s;
                              int numer;
                              s = wej.readLine();
                              numer = Integer.parseInt(s);
                              return numer;
                                      }
         
           
          public static void main(String[] args) throws IOException   {
                   
               Lista ListaZwierzat = new Lista();
               
               System.out.println("Naciśnij 1 lub 2 w zależnośći od tego co chcesz zrobić.");
               System.out.println();
               System.out.println("1-Dodaj zwierze na początku listy: ");
               System.out.println("2-Dodaj zwierze na końcu listy: ");
               System.out.println();
               
               int nrOpcji = wczytajInt();
               switch (nrOpcji){
               
                     case 1:
                     
                            ListaZwierzat.addFirst( new Zwierze());
                           
                           
                            break;
                     
                     case 2:
                     
                     ListaZwierzat.addLast(new Zwierze());
         
                     break;
                     
                     default:
                         
                             System.out.println("Wybrałeś nieprawidłowy numer.");
                     
                                }
                                                                                                       
            }

     }

  • #2 18 Kwi 2009 13:36
    Dżyszla
    Poziom 42  

    To lista powinna implementować jej funkcjonalność, a nie klasa. Czyli należy stworzyć strukturę [Obiekt, Następnik], gdzie obiektem będzie wskazanie na obiekt klasy zwierzę, a następnikiem na kolejny element listy. Będzie myślę znacznie prościej.

    Przy obecnej strukturze odwołanie się do konkretnego elementu bedzie wyglądało tak (nie wiem, czy to zgodnie z syntetyką Javy zapiszę):

    Code:

    Zwierze GetZwierzeNr(int zadany)
    {
    i=0;
    Zwierze wsk=poczatek;
    while((i<>zadany)||(wsk=null))
    {
       wsk=wsk.nastepny;
       i++;
    }
    return wsk;}
    GetZwierzenr(4).SetWaga(4);

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME