Guest User

Untitled

a guest
Jun 18th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. package laboratorio2;
  2.  
  3.  
  4. import java.util.HashMap;
  5. import java.util.Arrays;
  6. import java.util.ArrayList;
  7. import java.util.Map.Entry;
  8.  
  9. public class Cuaderno{
  10. private int noPaginas;
  11. private String tipo;
  12. private HashMap<Integer, ArrayList<String> > contenido;
  13.  
  14. //Esta es una constante de clase, no un miembro: puede ser públicamente accesible
  15. public static final int NO_LINEAS = 35;
  16. /*Este es un bloque de inicialización, se correrá dentro de cada constructor*/
  17. {
  18. contenido = new HashMap<Integer, ArrayList<String>>();
  19.  
  20. }
  21. /**El constructor por defecto*/
  22. public Cuaderno(){
  23. noPaginas = 140;
  24. tipo = "anillado";
  25. for(int i = 0; i < noPaginas; i++){
  26. contenido.put(i, new ArrayList<String>(NO_LINEAS));
  27. }
  28. }
  29.  
  30. public Cuaderno(int noPaginas, String tipo){
  31. this.noPaginas = noPaginas;
  32. this.tipo = tipo;
  33. String [] tempArray;
  34. for(int i = 0; i < noPaginas; i++){
  35. contenido.put(i, new ArrayList<String>(NO_LINEAS));
  36. }
  37.  
  38. }
  39.  
  40. public int getNoPaginas(){
  41. return this.noPaginas;
  42. }
  43.  
  44. public void setNoPaginas(int nuevoNum){
  45. this.noPaginas = nuevoNum;
  46. }
  47. /**Busca la primera página en blanco*/
  48. public int primeraPaginaLibre(){
  49. for(Entry<Integer, ArrayList<String>> pagina: contenido.entrySet()){
  50. if(pagina.getValue().size() < NO_LINEAS)
  51. return pagina.getKey().intValue();
  52. }
  53. //si no encuentra, retornar -1
  54. return -1;
  55. }
  56. /*Este método sobrecargado devuelve si se escribió con éxito*/
  57. public boolean escribir(String linea){
  58. int noPagina = primeraPaginaLibre();
  59. if(noPagina != -1){
  60. contenido.get(noPagina).add(linea);
  61. return true;
  62. }
  63. return false;
  64. }
  65.  
  66. public boolean escribir(String linea, int pagina){
  67. //Aquí nos valemos de cortocircuito para ver si la página existe antes
  68. //de chequear que esa página tenga espacio libre.
  69. if(contenido.containsKey(pagina) && contenido.get(pagina).size() < NO_LINEAS){
  70. contenido.get(pagina).add(linea);
  71. return true;
  72. }
  73. return false;
  74. }
  75. }
Add Comment
Please, Sign In to add comment