
ArrayList dar la vuelta
Publicado por anonymous (4 intervenciones) el 24/05/2017 10:24:13
Buenas!
Tengo un arraylist donde guarde unos mensajes y necesito darle la vuelta para sacar los 10 últimos en vez de los 10 primeros. El problema esque no consigo meterlos en otro arraylist del revés y ya nose que mas probar. Os dejo el código que estoy usando
Tengo un arraylist donde guarde unos mensajes y necesito darle la vuelta para sacar los 10 últimos en vez de los 10 primeros. El problema esque no consigo meterlos en otro arraylist del revés y ya nose que mas probar. Os dejo el código que estoy usando
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
if(directorio.exists()){
//Creo un arrayList para los mensajes
ArrayList almacenaMensajes=new ArrayList();
//Cargo el fichero
try {
// Apertura del fichero y creación de BufferedReader para poder hacer una lectura
FileReader fich = new FileReader (directorio);
BufferedReader br = new BufferedReader(fich);
//Inicializo variables
String linea;
int numeroLineas=0;
// Se lee el fichero y saco las lineas que hay
while((linea=br.readLine())!=null){
// Guardo las líneas en el ArrayList
almacenaMensajes.add(linea);
// Contar líneas
numeroLineas++;
}
//Saca el anterior
int count = 0;
//Creo un arrayList para los mensajes
ArrayList arrayListCopia=new ArrayList();
// Obtenemos el numero de elementos del ArrayList
int numElementos = almacenaMensajes.size();
int numEle=numElementos;
//Voy añadiendo al nuevo arraylist el primer elemento al último hasta acabar con todos
for (int i = 0, j=numEle; i < numElementos; i++,j--){
//arrayListCopia.add(j,almacenaMensajes.get(i) );
String infor=(String) almacenaMensajes.get(i);
arrayListCopia.add(j, infor);
}
ListIterator<String> iti = arrayListCopia.listIterator();
while(iti.hasPrevious() && count< 10){
textArea.append(iti.previous()+"\n");
iti.previous();
count++;
}
fich.close();
} catch(FileNotFoundException ex){
ex.printStackTrace();
}
Valora esta pregunta


0