tester988 Skrevet 10. juli 2008 Del Skrevet 10. juli 2008 Noen som kan hjelpe meg med følgende...? Har en liste med lister, eks: liste(liste(e1_1, e1_2), liste(e2_1, e2_2, e2_3), liste(e3_1)) finnes det noen enkel måte å parsere denne "listen av lister" på, slik at jeg får følgende: liste(list(e1_1, e2_1, e3_1), list(e1_1, e2_2, e3_1), list(e1_1, e2_3, e3_1), list(e1_2, e2_1, e3_1), list(e1_2, e2_2, e3_1), list(e1_2, e2_3, e3_1)) Jeg har altså følgende java-kode: class Test { public static void main(String[] args) { Test t = new Test(); t.kjor(); } void kjor() { ArrayList<ArrayList> listlist = new ArrayList<ArrayList>(); ArrayList<String> list1 = new ArrayList<String>(); ArrayList<String> list2 = new ArrayList<String>(); ArrayList<String> list3 = new ArrayList<String>(); list1.add("e1_1"); list1.add("e1_2"); list2.add("e2_1"); list2.add("e2_2"); list2.add("e2_3"); list3.add("e3_1"); listlist.add(list1); listlist.add(list2); listlist.add(list3); ArrayList<ArrayList> newListList = genererList(listlist); } } Har slitet med denne her i en hel dag... Så hvis noen kunne hjelpe meg, er jeg kjempe takknemlig... På forhånd takk! Lenke til kommentar
Vipera Skrevet 10. juli 2008 Del Skrevet 10. juli 2008 Skal listlist alltid inneholde 3 andre lister? eller skal programmet skrives slik at det takler at listlist er av ubestemt størrelse? Lenke til kommentar
tester988 Skrevet 10. juli 2008 Forfatter Del Skrevet 10. juli 2008 Skal listlist alltid inneholde 3 andre lister? eller skal programmet skrives slik at det takler at listlist er av ubestemt størrelse? Programmet skal skrives slik at det takler at listlist er av ubestemt størrelse... Lenke til kommentar
Vipera Skrevet 10. juli 2008 Del Skrevet 10. juli 2008 package test; import java.util.ArrayList; import java.util.Arrays; public class Test { public static void main(String[] args) { Test t = new Test(); t.kjor(); } void kjor() { ArrayList<ArrayList<String>> listlist = new ArrayList<ArrayList<String>>(); ArrayList<String> list1 = new ArrayList<String>(); ArrayList<String> list2 = new ArrayList<String>(); ArrayList<String> list3 = new ArrayList<String>(); list1.add("e1_1"); list1.add("e1_2"); list2.add("e2_1"); list2.add("e2_2"); list2.add("e2_3"); list3.add("e3_1"); listlist.add(list1); listlist.add(list2); listlist.add(list3); ArrayList<ArrayList<String>> newListList = genererList(listlist); System.out.println(newListList); } public ArrayList<ArrayList<String>> genererList(ArrayList<ArrayList<String>> list) { ArrayList<ArrayList<String>> newList = new ArrayList<ArrayList<String>>(); ArrayList<String> tempList = new ArrayList<String>(); step(0, tempList, list, newList); return newList; } public void step(int index, ArrayList<String> tempList, ArrayList<ArrayList<String>> orgList, ArrayList<ArrayList<String>> newList) { if(index == orgList.size()) { newList.add((ArrayList<String>)tempList.clone()); return; } for(int i=0; i<orgList.get(index).size(); i++) { tempList.add(orgList.get(index).get(i)); step(index+1, tempList, orgList, newList); tempList.remove(tempList.size()-1); } } } Sånn kan det feks gjøres. Sikkert mulig å optimalisere litt, men skal virke greit nok. Lenke til kommentar
tester988 Skrevet 10. juli 2008 Forfatter Del Skrevet 10. juli 2008 Tusen tusen takk for hjelpen:D Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå