Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package laboratorio2;
- import java.util.HashMap;
- import java.util.Arrays;
- import java.util.ArrayList;
- import java.util.Map.Entry;
- public class Cuaderno{
- private int noPaginas;
- private String tipo;
- private HashMap<Integer, ArrayList<String> > contenido;
- //Esta es una constante de clase, no un miembro: puede ser públicamente accesible
- public static final int NO_LINEAS = 35;
- /*Este es un bloque de inicialización, se correrá dentro de cada constructor*/
- {
- contenido = new HashMap<Integer, ArrayList<String>>();
- }
- /**El constructor por defecto*/
- public Cuaderno(){
- noPaginas = 140;
- tipo = "anillado";
- for(int i = 0; i < noPaginas; i++){
- contenido.put(i, new ArrayList<String>(NO_LINEAS));
- }
- }
- public Cuaderno(int noPaginas, String tipo){
- this.noPaginas = noPaginas;
- this.tipo = tipo;
- String [] tempArray;
- for(int i = 0; i < noPaginas; i++){
- contenido.put(i, new ArrayList<String>(NO_LINEAS));
- }
- }
- public int getNoPaginas(){
- return this.noPaginas;
- }
- public void setNoPaginas(int nuevoNum){
- this.noPaginas = nuevoNum;
- }
- /**Busca la primera página en blanco*/
- public int primeraPaginaLibre(){
- for(Entry<Integer, ArrayList<String>> pagina: contenido.entrySet()){
- if(pagina.getValue().size() < NO_LINEAS)
- return pagina.getKey().intValue();
- }
- //si no encuentra, retornar -1
- return -1;
- }
- /*Este método sobrecargado devuelve si se escribió con éxito*/
- public boolean escribir(String linea){
- int noPagina = primeraPaginaLibre();
- if(noPagina != -1){
- contenido.get(noPagina).add(linea);
- return true;
- }
- return false;
- }
- public boolean escribir(String linea, int pagina){
- //Aquí nos valemos de cortocircuito para ver si la página existe antes
- //de chequear que esa página tenga espacio libre.
- if(contenido.containsKey(pagina) && contenido.get(pagina).size() < NO_LINEAS){
- contenido.get(pagina).add(linea);
- return true;
- }
- return false;
- }
- }
Add Comment
Please, Sign In to add comment