Witam,
Nie rozumiem sensu, tego urywka kodu poniżej, przyjmijmy, że pierwsze dwa wiersze "instancje" to:
[test1][test2][test3]
[test4][test5][test3]
Zaś "maxIG" to "2".
Jak ja to rozumiem:
Czyli w pierwszej pętli wartość to będzie "test3". Następnie do "listaInstancji" przypisujemy wartość "null" (no bo nic tam nie ma, dopiero co to utworzyliśmy). Wykona się if, co spowoduje wykonanie tej instr. "
listaInstancji = new ArrayList<String[]>();
" - czy ona nie powinna być na początku ? potem do "podzial" dodamy "test3" oraz ?listęInstancji, do w/w listy dodamy całą linijkę - "kolejno "test1" "test2" oraz "test3" " po czym weźmiemy kolejną linię - " test4 test5 test3 " i ustawimy wartość na "test3" i do listaInstancji przypiszemy "test3" pominiemy if dodając tylko do "listaInstancji" drugą linię: "test4 test5 test3" ...
Coś tu jest nie tak, mógłby ktoś mi wyjaśnić o co w tym chodzi ?
Map<String, List<String[]>> podzial= new HashMap<String, List<String[]>>();
for (String[] instancja : instancje) {
String wartosc = instancja[maxIG];
List<String[]> listaInstancji = podzial.get(wartosc);
if (listaInstancji == null) {
listaInstancji = new ArrayList<String[]>();
podzial.put(wartosc, listaInstancji);
}
listaInstancji.add(instancja);
}