gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Konverzija liste u i iz niza, lista koja se deli na dve
[spa1-materijali.git] / kodovi / liste / ListeKonverzija.java
1 /**
2 * Primer pravljanja liste koja moze da se napravi od niza istog tipa elemenata
3 * i koja moze da napravi niz od svog sadrzaja.
4 *
5 */
6 public class ListeKonverzija {
8 public static void main(String[] args) {
9 // demonstracija kako izgleda stampajniz
10 String[] ptice = new String[]{"golub", "vrana", "vrabac"};
11 System.out.println("niz:" + ptice); //toString od niza
12 stampajNiz(ptice);
14 System.out.println();
16 // pravimo novu listu od postojeceg niza
17 ListaN listaP = new ListaN();
18 listaP.dodajSve(ptice);
19 System.out.println(listaP);
20 listaP.dodaj("sova");
21 System.out.println(listaP);
23 System.out.println();
25 // ako nam je bitan redosled, onda koristimo drugi metod
26 ListaN druga = new ListaN();
27 druga.dodajSveUIstomRedosledu(ptice);
28 System.out.println(druga);
30 // mozemo dodavati i elemente druge liste
31 druga.dodajSve(listaP);
32 System.out.println(druga);
34 System.out.println();
36 // mozemo direktno u konstruktor da prosledimo niz
37 ListaN treca = new ListaN(ptice);
38 System.out.println(treca);
40 System.out.println();
42 // pravimo listu koju cemo pretvarati u niz
43 ListaN lista = new ListaN();
45 lista.dodaj("vrabac");
46 lista.dodaj("vrana");
47 lista.dodaj("golub");
48 lista.dodaj("albatros");
50 System.out.println(lista);
52 String[] niz = lista.napraviNiz();
53 System.out.println("niz:" + niz); //toString od niza
54 stampajNiz(niz);
56 String[] niz2 = lista.napraviNiz();
57 System.out.println("niz:" + niz2); //toString od niza
58 stampajNiz(niz2);
59 System.out.println("nizovi su jednaki:"+niz.equals(niz2));
61 System.out.println();
62 }
64 public static void stampajNiz(String[] niz) {
65 System.out.print("sadzaj niza:");
66 for (String s : niz) {
67 System.out.print('"' + s + '"' + ' ');
68 }
69 System.out.println();
70 }
72 }
74 /**
75 * Lista strigova koja omogucava da njen sadrzaj pretvori u niz, kao i da se
76 * lista napravi od niza, ili da se dodaju svi elementi iz nekog niza.
77 */
78 class ListaN {
80 class Element {
81 String info;
82 Element veza;
84 public Element(String s) {
85 info = s;
86 veza = null;
87 }
88 }
90 // pokazivac na prvi element liste
91 Element prvi;
93 // interni brojac koji pomaze kod nekih operacija
94 int brojElemenata;
96 /** Kreira praznu listu. */
97 public ListaN() {
98 this.prvi = null;
99 this.brojElemenata = 0;
102 /** Kreira listu u kojoj je pocetni sadrzaj iskopiran iz prosledjenog niza */
103 public ListaN(String[] stringovi) {
104 this.dodajSveUIstomRedosledu(stringovi);
107 public String toString() {
108 String rez = "ListaN: [ ";
109 Element tekuci = prvi;
110 while (tekuci != null) {
111 rez += '"' + tekuci.info + "\" ";
112 tekuci = tekuci.veza;
114 rez += "]";
115 return rez;
118 /** vraca broj elemenata u listi */
119 public int velicina() {
120 return brojElemenata;
123 /** Vraca da li je lista prazna */
124 public boolean jePrazna() {
125 return prvi == null;
128 public void dodaj(String str) {
129 Element novi = new Element(str);
130 novi.veza = prvi;
131 prvi = novi;
132 brojElemenata++;
135 public void dodajSve(String[] stringovi) {
136 for (String s : stringovi) {
137 dodaj(s);
141 public void dodajSveUIstomRedosledu(String[] stringovi) {
142 for (int i = stringovi.length - 1; i >= 0; i--) {
143 dodaj(stringovi[i]);
147 public String[] napraviNiz() {
148 String[] niz = new String[brojElemenata];
149 Element tekuci = prvi;
150 int br = 0;
151 while (tekuci != null) {
152 niz[br] = tekuci.info;
153 br++;
154 tekuci = tekuci.veza;
156 return niz;
159 public void dodajSve(ListaN lista) {
160 Element tekuci = lista.prvi;
161 while (tekuci != null) {
162 dodaj(tekuci.info);
163 tekuci = tekuci.veza;
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner