Witam wszystkich, pisze rozwiązanie cwie=czenia z książki Thinking in Java ed 3 i zaciełem sie okrutnie na rozdziale kontenerów. Niby wszystko jest fajnie wyjaśnione ale uważam temat Map został potraktowany troszke po macoszemu (albo ja taki lewy jestem :)). W kazdym razie mam zamieścic klase np Klasa1 w odwzorowaniu Map i kojarząc imie jako klucz dla kazdego obiektu tej klasy (wartosc). Potem mam pobrac iterator zastosowac keySet i wyswietlic to wszystko metoda hop. Napisalem cos takiego ale nie do konca :
1 - chyba zle zrozumialem temat, dla uproszczenia zadania klucze dałem jako zwykła tablice int
2 - bardzo pe=rosze kogos o wskazanie błędów w kodzie (ew. poprawienie) i napisanie paru zdan komenta co z czym sie je :D oto kod:
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
interface Pary{
Gebril next();
}
class Gebril{
private int gebrilNumber;
private String nameKey;
public Gebril(int i){
gebrilNumber = i;
//nameKey = s;
}
public int getNumber(){
return gebrilNumber;
}
public static void hop(Object s){
Gebril geb = (Gebril)s;
System.out.println("Homik nr: " + geb.getNumber()
+ " ,ten stworek skacze.");
}
public String toString(){
return "Gebryl nr " + gebrilNumber;
}
//chciałem automatycznie zapełniac mape ale zaniechalem pomysłu
public static void fill(Map m, ArrayList gebryle, int count){
for(int i = 0; i < count;i++){
Gebril g = (Gebril) ((Pary) gebryle).next();
m.put(g.gebrilNumber, g.nameKey);
}
}
public static void main(String[] args){
Map m = new HashMap<Integer,Integer>();
ArrayList gebryle = new ArrayList();
for(int i = 0; i < 2; i++){
gebryle.add(new Gebril(i));
}
int[] klucze = {1,2,3};
for(int i = 0; i < gebryle.size();i++){
m.put(klucze[i], gebryle.get(i));
}
//System.out.println(m.get(1)); działa na pojedynczych
Iterator i = m.keySet().iterator();
while(i.hasNext()){
Gebril g = ((Pary) gebryle).next();
System.out.println(m.get(g));
}
}
}