Hola buenas, estoy haciendo un curso de java y en un ejercicio tengo que pedir datos al usuario y guardarlos en un arrayList y parece mentira pero el problema lo tengo al pedir los datos por el teclado.
 
El problema es que despues de leer un dato con nextInt();
al volver a llamar al objeto de la clase Scanner para leer con nextLine();
haya introdocido lo que haya introducido el reconoce una cadena vacia de texto
aqui os dejo el código para que veais.  
Código:
 package exitae.unidad2;
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
	
	private static ArrayList<Alumno> coleccion = new ArrayList<Alumno>();
	private static Scanner scan = new Scanner(System.in);
	public static void main(String[] args) {
			Alumno alm = new Alumno(null,null,0,0,null);
			System.out.println("....Nuevo alumno....");
			System.out.println("");
			System.out.print("Nombre: ");
			String nmtmp = scan.nextLine();
			while (!nmtmp.equalsIgnoreCase("salir")){
				alm.setName(nmtmp);
				
				System.out.print("apellidos: ");
				alm.setApe(scan.nextLine()); // Aquí esta el fallo, por debug se ve como devuelve una cadena vacia.
				
				System.out.print("Edad: ");
				alm.setEdad(scan.nextInt());
				
				System.out.println("Curso: ");
				alm.setCurso(scan.nextLine());
				
				System.out.println("Nota: ");
				alm.setNota(scan.nextInt());
				
				coleccion.add(alm);
			}
	}
}