java - Copy List<Object> with "addAll" method NoSuchElementException -
i think have problem in code, can't find why. when i'm using chemin.next() working fine. when new_chemin.addall(chemin.next()); have nosuchelementexception
public zone cherche_chemin(list<list<zone>> chemins, list<zone> zones_exclues, zone zone_arrivee) { boolean new_way = false; (iterator<list<zone>> chemin = chemins.iterator(); chemin.hasnext();) { list<zone> zones = chemin.next().get(chemins.size() - 1).getvoisinsaccessible(zones_exclues); (zone test_zone : zones) { new_way = true; if (test_zone == zone_arrivee) { homecoming chemin.next().get(1); } else { list<zone> new_chemin = new arraylist<>(); enw_chemin.addall(chemin.next()); // line new_chemin.add(test_zone); chemins.add(new_chemin); zones_exclues.add(test_zone); } } chemin.remove(); } if (new_way) { homecoming cherche_chemin(chemins, zones_exclues, zone_arrivee); } else { homecoming null; } }
note iterator.next() move next element immediately. alter this
public zone cherche_chemin(list<list<zone>> chemins, list<zone> zones_exclues, zone zone_arrivee) { boolean new_way = false; (iterator<list<zone>> chemin = chemins.iterator(); chemin.hasnext();) { list<zone> cheminlist = chemin.next(); list<zone> zones = cheminlist .get(chemins.size() - 1).getvoisinsaccessible(zones_exclues); (zone test_zone : zones) { new_way = true; if (test_zone == zone_arrivee) { homecoming cheminlist.get(1); } else { list<zone> new_chemin = new arraylist<>(); enw_chemin.addall(cheminlist); // line new_chemin.add(test_zone); chemins.add(new_chemin); zones_exclues.add(test_zone); } } chemin.remove(); } if (new_way) { homecoming cherche_chemin(chemins, zones_exclues, zone_arrivee); } else { homecoming null; } } java list nosuchelementexception
No comments:
Post a Comment