Ik gebruik in een programma de java File class. Nu heb ik een subclasse gemaakt genaamd CFile waar wat extra methoden toegevoegd zijn (isImage, getExtension… etc.).
Nu gebruik ik door heel mijn programma de klasse CFile, omdat ik die extra informatie nodig heb, en dit werkt prima. Echter ergens in het programma gebruik ik de functie (een functie van de klasse File): listFiles()
Dit geeft terug een array van File objecten, dus File[], maar ik zou een array van CFile objecten terug willen krijgen, dus CFile[]. Dit is omdat ik uiteindelijk het array in een ArrayList<CFile> object moet krijgen.
Ik doe het nu op de volgende manier:
Echter als array erg groot wordt kost dit nogal wat tijd. Is er een snellere manier?
Ik had dit al gevonden:
Als dit zou werken ben ik dus van een, potentieel zware, loop af. Echter Arrays.asList levert een list van File op en mijn ArrayList bevat CFile. Ik zit dus met een soort van Casting probleem… ik kan niet File naar CFile casten.
Hoe kan ik zoiets op een snelle manier doen?
Nu gebruik ik door heel mijn programma de klasse CFile, omdat ik die extra informatie nodig heb, en dit werkt prima. Echter ergens in het programma gebruik ik de functie (een functie van de klasse File): listFiles()
Dit geeft terug een array van File objecten, dus File[], maar ik zou een array van CFile objecten terug willen krijgen, dus CFile[]. Dit is omdat ik uiteindelijk het array in een ArrayList<CFile> object moet krijgen.
Ik doe het nu op de volgende manier:
code:
1
2
3
4
5
6
| // Copy items from array to arraylist for (int i = 0; i < array.length; i++) { CFile fileCast = new CFile(array[i].getAbsolutePath()); al.add(fileCast); } |
Echter als array erg groot wordt kost dit nogal wat tijd. Is er een snellere manier?
Ik had dit al gevonden:
code:
1
2
| List list = Arrays.asList(array); ArrayList arrayList = new ArrayList(list); |
Als dit zou werken ben ik dus van een, potentieel zware, loop af. Echter Arrays.asList levert een list van File op en mijn ArrayList bevat CFile. Ik zit dus met een soort van Casting probleem… ik kan niet File naar CFile casten.
Hoe kan ik zoiets op een snelle manier doen?