Social

sábado, 24 de enero de 2015

Java: Convertir una lista en arreglo o array

En algunos casos puede ser mas conveniente tener nuestros objetos dentro de un arreglo (Object[]) que dentro de una lista (List<Object>) . En tal caso puede se puede realizar la conversión de lista a arreglo muy fácilmente.

En el siguiente ejemplo se puede observar como se define una lista de Integer (List<Integer>) y luego se convierte en una arreglo de Integer (Integer[]).
import java.util.ArrayList;
import java.util.List;
public class ListToArray {
public static void main(String[] args){
//Se crea un List de Integers
List<Integer> lista = new ArrayList<Integer>();
lista.add(1);
lista.add(2);
lista.add(3);
lista.add(4);
lista.add(5);
//Se pasa la lista de Integer a un array o arreglo
Integer[] array = new Integer[lista.size()];
lista.toArray(array);
//Recorremos la lista
System.out.println("---recorriendo Lista de numeros---");
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
}
}

Luego de ejecutar el código el resultado sería la misma lista que se definió al inicio del código.

Java: Sumar y restar horas en un Date

Muchas veces es necesario realizar operaciones sobre una fecha. No solamente sumar o restar horas sino también minutos, segundos, semanas, años, meses, etc. Para tal tarea existe en Java la clase Calendar. Esta clase nos permite modificar una fecha (Date) base a nuestro gusto usando los métodos que tiene predefinidos.

En el siguiente código se puede observar los cambios en un objeto del tipo Date usando Calendar.
import java.util.Calendar;
import java.util.Date;
public class DateOperation {
public static void main(String[] args){
//Establecemos la fecha que deseamos en un Calendario
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
//Desplegamos la fecha
Date tempDate = cal.getTime();
System.out.println("Fecha actual: " + tempDate);
//Le cambiamos la hora y minutos
cal.set(Calendar.HOUR, cal.get(Calendar.HOUR)+ 2);
cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE)- 5);
tempDate = cal.getTime();
System.out.println("Hora modificada: " + tempDate);
//Le cambiamos el mes
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1);
System.out.println("Fecha modificada: " + cal.getTime());
//De la misma forma se puede cambiar año, semana, etc
}
}


Al ejecutar el codigo se obtendra el siguiente resultado:

Fecha actual: Sat Jan 24 19:13:29 CST 2015
Hora modificada: Sat Jan 24 21:08:29 CST 2015
Fecha modificada: Tue Feb 24 21:08:29 CST 2015