Java - ArrayList dar la vuelta

   
Vista:

ArrayList dar la vuelta

Publicado por sandra (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
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Revisar política de publicidad