|
161
|
Programación / Java / vector como parametro, problemas
|
en: 20 Agosto 2019, 05:10 am
|
Una pregunta porque puedo hacer esto package ana; public class Prueba{ private static final int TAMAÑO = 10; public static int[] cargarArreglo() { int[] arreglo = new int[TAMAÑO]; for(int i = 0; i < arreglo.length; i++) { arreglo [i ] = (int) (Math. random() * 10 + 1); } return arreglo; } public static void mostrarArreglo(int arreglo[]) { for(int i = 0; i < arreglo.length; i++) { System. out. print(arreglo [i ] + " "); } } public static void main (String args []) { int[] vector = cargarArreglo(); mostrarArreglo(vector); } }
pero no esto?? package ana; public class Prueba{ private static final int TAMAÑO = 10; public static void cargarArreglo(int arreglo[]) { arreglo = new int[TAMAÑO]; for(int i = 0; i < arreglo.length; i++) { arreglo [i ] = (int) (Math. random() * 10 + 1); } } public static void mostrarArreglo(int arreglo[]) { for(int i = 0; i < arreglo.length; i++) { System. out. print(arreglo [i ] + " "); } } public static void main (String args []) { int[] vector; cargarArreglo(vector); mostrarArreglo(vector); } }
Por último, me parece a mi o tengo que inicializar si o si un vector antes de mandarlo como parametro? o.O
|
|
|
162
|
Programación / Java / clases statics y clases objetos
|
en: 16 Agosto 2019, 04:01 am
|
Hola es lo mismo esto package un.paquete; import java.util.Random; private static int TAMAÑO_VECTOR = 10; } public int[] cargarVector() { int numeros[] = new int[TAMAÑO_VECTOR]; for(int i = 0; i < numeros.length; i++) { numeros[i] = aleatorio.nextInt(10); } return numeros; } public void mostrarVector(int numeros[]) { for(int i = 0; i < numeros.length; i++) { System. out. print(numeros [i ] + " "); } } }
package de.ana; import un.paquete; public static void main (String args []) { int arreglo[] = nuevo.cargarVector(); nuevo.mostrarVector(arreglo); } }
Que esto? package un.paquete public class EjemploVector { private static int TAMANIO_VECTOR= 10; /** * * @return un arreglo cargado con valores aleatorios */ public static int[] cargarVector() { int numeros[] = new int[TAMANIO_VECTOR]; int max = 10; int min = 1; int range = max - min + 1; for(int i = 0; i < 10; i++) { numeros [i ] = (int)(Math. random()* range ) + min ; } return numeros; } public static void mostrarVector(int numeros[]) { for(int i = 0; i < TAMANIO_VECTOR; i++) { System. out. println(numeros [i ]); } } /** * Método main * @param args */ public static void main (String[] args ) { int numeros[] = cargarVector(); mostrarVector(numeros); } }
|
|
|
163
|
Programación / Java / Valores aleatorios
|
en: 16 Agosto 2019, 03:20 am
|
Una pregunta, porque cuando cargo una matriz con valores aleatorios con un objeto creado con la clase Random este se llena y da valores repetidos como la siguiente matriz, lo que no se es porque al busca un numero en especifico el "7" por ejemplo a veces no me da la posicion exacta que es la primera aparicion del numero "7" que es fila 1, columna 4, me puede dar esa posicion o sino otra que contenga al numero "7", y para agregar me parece que es un problema con los valores generados de forma aleatorio y repetidos de paso. 1 2 3 4 5 3 3 4 9 7 5 6 7 8 8 6 6 6 7 7
|
|
|
164
|
Programación / Java / problemas con mapeo de objeto
|
en: 31 Julio 2019, 02:58 am
|
Me salen estos mensajes no se si tenga que ver con mi archivo hibernate.cfg.xml jul 30, 2019 9:01:01 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final} jul 30, 2019 9:01:01 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {4.3.1.Final} jul 30, 2019 9:01 :01 PM org. hibernate. cfg. Environment <clinit >INFO: HHH000206: hibernate.properties not found jul 30, 2019 9:01 :01 PM org. hibernate. cfg. Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist jul 30, 2019 9:01:01 PM org.hibernate.cfg.Configuration configure INFO: HHH000043: Configuring from resource: aplicacion/hibernate/configuracion/hibernate.cfg.xml jul 30, 2019 9:01:01 PM org.hibernate.cfg.Configuration getConfigurationInputStream INFO: HHH000040: Configuration resource: aplicacion/hibernate/configuracion/hibernate.cfg.xml jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! jul 30, 2019 9:01:01 PM org.hibernate.cfg.Configuration addResource INFO: HHH000221: Reading mappings from resource: aplicacion/hibernate/mapeos/Mueble.hbm.xml jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.ErrorLogger logErrors ERROR : HHH000196 : Error parsing XML (40) : El contenido del tipo de elemento "class" es incompleto, debe coincidir con "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)". jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.ErrorLogger logErrors ERROR : HHH000196 : Error parsing XML (40) : El contenido del tipo de elemento "hibernate-mapping" debe coincidir con "(meta*,identifier-generator*,typedef*,filter-def*,import*,(class|subclass|joined-subclass|union-subclass)*,resultset*,(query|sql-query)*,filter-def*,fetch-profile*,database-object*)". jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.ErrorLogger logErrors ERROR : HHH000196 : Error parsing XML (40) : El contenido del tipo de elemento "class" es incompleto, debe coincidir con "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)". jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.ErrorLogger logErrors ERROR : HHH000196 : Error parsing XML (40) : El contenido del tipo de elemento "hibernate-mapping" debe coincidir con "(meta*,identifier-generator*,typedef*,filter-def*,import*,(class|subclass|joined-subclass|union-subclass)*,resultset*,(query|sql-query)*,filter-def*,fetch-profile*,database-object*)". Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Unable to read XML at aplicacion.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:29) at aplicacion.hibernate.dao.imp.MuebleDAOImp.create(MuebleDAOImp.java:22) Caused by: org.hibernate.InvalidMappingException: Unable to read XML at org.hibernate.internal.util.xml.MappingReader.legacyReadMappingDocument(MappingReader.java:375) at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:304) at org.hibernate.cfg.Configuration.add(Configuration.java:516) at org.hibernate.cfg.Configuration.add(Configuration.java:512) at org.hibernate.cfg.Configuration.add(Configuration.java:686) at org.hibernate.cfg.Configuration.addResource(Configuration.java:769) at org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:123) at org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:46) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2255) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2227) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2207) at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:213) at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:46) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2160) at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:201) at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:46) at org.hibernate.cfg.Configuration.configure(Configuration.java:2075) at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:183) at aplicacion.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:25) ... 2 more Caused by: org.xml.sax.SAXParseException; lineNumber: 44; columnNumber: 39; El contenido del tipo de elemento "class" es incompleto, debe coincidir con "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1994) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:769) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643) at org.dom4j.io.SAXReader.read(SAXReader.java:465) at org.hibernate.internal.util.xml.MappingReader.legacyReadMappingDocument(MappingReader.java:325) ... 20 more C:\Users\Ana\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 2 seconds)
|
|
|
166
|
Programación / Java / objeto inalcanzable
|
en: 29 Julio 2019, 07:40 am
|
Hola, tengo un problema al hacer el abm de libros, me sale que el objeto libro es inalcanzable y que fue resuelto a nulo, sera porque estoy usando todo los datos de tipo referencia? porque hice uno con puros datos primitivos y no tuve problemas, fijense en la pagina de JSF, la clase y la clase LibroBean creo que ahi tengo los errores pero no se,(SOLO EL BORRADO) <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:p="http://primefaces.org/ui"> <h:head> </h:head> <h:body> <h:form id="frmBiblioteca" title="ABM Biblioteca"> <p:growl id="mensaje"/> <p:panel id="pnlOpciones" header="ABM Biblioteca"> <p:menubar> <p:menuitem value="Agregar Libro"/> <p:menuitem value="Ordenar (A - Z)" actionListener="#{libroBean.ordenarAscendente()}" update="dtLibros"/> <p:menuitem value="Ordenar (Z - A)" actionListener="#{libroBean.ordenarDescendente()}" update="dtLibros" /> <p:menuitem value="Buscar Libro" /> </p:menubar> </p:panel> <p:panelGrid id="pgAgrear" columns="2"> <p:outputLabel id="lblCodigo" value="Código: "/> <p:inputNumber id="inpCodigo" value="#{libro.código}"/> <p:outputLabel id="lblISBN" value="ISBN: "/> <p:inputNumber id="inpISBN" value="#{libro.ISBN}"/> <p:outputLabel id="lblTitulo" value="Titulo: "/> <p:inputText id="inpTitulo" value="#{libro.titulo}"/> <p:outputLabel id="lblPaginas" value="Cantidad Paginas: "/> <p:inputNumber id="inpPaginas" value="#{cantPaginas}"/> <p:outputLabel id="lblTematica" value="Tematica: "/> <p:inputText id="inpTematica" value="#{libro.temática}"/> <!-- private Autor autor; private LocalDate fechaEdicion;--> </p:panelGrid> <p:dataTable id="dtLibros" var="libros" value="#{libroBean.libros}"> <p:column headerText="Codigo"> <h:outputText value="#{libros.código}"/> </p:column> <p:column headerText="ISBN"> <h:outputText value="#{libros.ISBN}"/> </p:column> <p:column headerText="Titulo"> <h:outputText value="#{libros.titulo}"/> </p:column> <p:column headerText="Cantidad Páginas"> <h:outputText value="#{libros.cantPaginas}"/> </p:column> <p:column headerText="Tematica"> <h:outputText value="#{libros.temática}"/> </p:column> <p:column headerText="Autor"> <h:outputText value="#{libros.autor.nombre} #{libros.autor.apellido}"/> </p:column> <p:column headerText="Fecha publicación"> <h:outputText value="#{libros.fechaEdicion.dayOfMonth}/#{libros.fechaEdicion.monthValue}/#{libros.fechaEdicion.year}"/> </p:column> <p:column headerText="Acción"> <p:commandButton id="btnEliminar" value="Eliminar" actionListener="#{libroBean.borrar(libros)}" update="dtLibros"/> </p:column> </p:dataTable> </h:form> </h:body>
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package apliacion.dao; import aplicacion.modelo.dominio.Libro; import java.util.List; /** * * @author Ana Kéldysh */ public interface ILibroDAO{ public void agregar(Libro nuevo); public void borrar(Libro borrado); public void modificar(Libro modificado); public void ordenarAscendente(); public void ordenarDescendente(); public List <Libro > buscarLibros (String buscado ); public List<Libro> mostrarLibros(); }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package aplicacion.controlador.bean; import apliacion.dao.ILibroDAO; import aplicacion.dao.imp.ILibroDAOImp; import aplicacion.modelo.dominio.Libro; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; /** * * @author Ana Kéldysh */ @ManagedBean @SessionScoped private Libro libro; private ILibroDAO libroDAO; private List<Libro> libros; /** * Creates a new instance of LibroBean */ public LibroBean() { libroDAO = new ILibroDAOImp(); libros = new ArrayList<>(); } public void generarLibros() { libros = libroDAO.mostrarLibros(); } @PostConstruct public void iniciarLibro() { libro = new Libro(); generarLibros(); } public void agregar(Libro nuevo) { libroDAO.agregar(nuevo); } public void borrar(Libro borrado) { libroDAO.borrar(borrado); } public void modificar(Libro modificado) { libroDAO.modificar(modificado); } public void ordenarAscendente() { libroDAO.ordenarAscendente(); } public void ordenarDescendente() { libroDAO.ordenarDescendente(); } public List <Libro > buscarLibros (String buscado ) { return libroDAO.buscarLibros(buscado); } public List<Libro> mostrarLibros() { return libroDAO.mostrarLibros(); } public Libro getLibro() { return libro; } public void setLibro(Libro libro) { this.libro = libro; } public ILibroDAO getLibroDAO() { return libroDAO; } public void setLibroDAO(ILibroDAO libroDAO) { this.libroDAO = libroDAO; } @Override return "LibroBean{" + "libro=" + libro + ", libroDAO=" + libroDAO + ", libros=" + libros + '}'; } public List<Libro> getLibros() { return libros; } public void setLibros(List<Libro> libros) { this.libros = libros; } }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package aplicacion.controlador.bean; import apliacion.dao.ILibroDAO; import aplicacion.dao.imp.ILibroDAOImp; import aplicacion.modelo.dominio.Autor; import aplicacion.modelo.dominio.Libro; import java.time.LocalDate; /** * * @author Ana Kéldysh */ public class Test { public static void main (String[] args ) { ILibroDAO lista = new ILibroDAOImp(); lista.mostrarLibros().forEach((a) -> { System. out. println(a. getCódigo ()); }); System. out. println("Despues de borrar"); lista.borrar(new Libro(1, 1000, "Java Como Programar", 1000, "Programación", new Autor(), LocalDate.now())); lista.mostrarLibros().forEach((a) -> { System. out. println(a. getCódigo ()); }); } }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package aplicacion.dao.imp; import apliacion.dao.ILibroDAO; import aplicacion.modelo.dominio.Libro; import aplicacion.modelo.util.ListaLibros; import java.io.Serializable; import java.util.List; /** * * @author Ana Kéldysh */ public class ILibroDAOImp implements ILibroDAO, Serializable { private ListaLibros libros; public ILibroDAOImp() { libros = new ListaLibros(); } @Override public void agregar(Libro nuevo) { libros.agregar(nuevo); } @Override public void borrar(Libro borrado) { libros.borrar(borrado); } @Override public void modificar(Libro modificado) { libros.modificar(modificado); } @Override public void ordenarAscendente() { libros.ordenarAscendente(); } @Override public void ordenarDescendente() { libros.ordenarDescendente(); } @Override public List <Libro > buscarLibros (String buscado ) { return libros.buscarLibros(buscado); } @Override public List<Libro> mostrarLibros() { return libros.getLibros(); } }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package aplicacion.modelo.dominio; import java.io.Serializable; /** * * @author Ana Kéldysh */ public Autor() { } this.nombre = nombre; this.apellido = apellido; this.edad = edad; this.nacionalidad = nacionalidad; } public String getNacionalidad () { return nacionalidad; } public void setNacionalidad (String nacionalidad ) { this.nacionalidad = nacionalidad; } return nombre; } public void setNombre (String nombre ) { this.nombre = nombre; } return apellido; } public void setApellido (String apellido ) { this.apellido = apellido; } return edad; } public void setEdad (Integer edad ) { this.edad = edad; } @Override return "Autor{" + "nombre=" + nombre + ", apellido=" + apellido + ", edad=" + edad + ", nacionalidad=" + nacionalidad + '}'; } }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package aplicacion.modelo.dominio; import java.io.Serializable; import java.time.LocalDate; /** * * @author Ana Kéldysh */ private Autor autor; private LocalDate fechaEdicion; public Libro() { } this.código = código; this.ISBN = ISBN; this.titulo = titulo; this.cantPaginas = cantPaginas; this.temática = temática; this.autor = autor; this.fechaEdicion = fechaEdicion; } return código; } public void setCódigo (Integer código ) { this.código = código; } return ISBN; } public void setISBN (Integer ISBN ) { this.ISBN = ISBN; } return titulo; } public void setTitulo (String titulo ) { this.titulo = titulo; } return cantPaginas; } public void setCantPaginas (Integer cantPaginas ) { this.cantPaginas = cantPaginas; } return temática; } public void setTemática (String temática ) { this.temática = temática; } public Autor getAutor() { return autor; } public void setAutor(Autor autor) { this.autor = autor; } public LocalDate getFechaEdicion() { return fechaEdicion; } public void setFechaEdicion(LocalDate fechaEdicion) { this.fechaEdicion = fechaEdicion; } @Override return "Libro{" + "c\u00f3digo=" + código + ", ISBN=" + ISBN + ", titulo=" + titulo + ", cantPaginas=" + cantPaginas + ", tem\u00e1tica=" + temática + ", autor=" + autor + ", fechaEdicion=" + fechaEdicion + '}'; } }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package aplicacion.modelo.util; import aplicacion.modelo.dominio.Autor; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * * @author Ana Kéldysh */ private List<Autor> autores; public ListaAutores() { autores = new ArrayList<>(); autores.add(new Autor("Vanessa", "Navarro", 34, "Argentina")); autores.add(new Autor("Ana", "Kéldysh", 15, "Argentina")); } public List<Autor> getAutores() { return autores; } public void setAutores(List<Autor> autores) { this.autores = autores; } @Override return "ListaAutores{" + "autores=" + autores + '}'; } }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package aplicacion.modelo.util; import aplicacion.modelo.dominio.Libro; import java.io.Serializable; import java.time.LocalDate; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; /** * * @author Ana Kéldysh */ private List<Libro> libros; private ListaAutores autores; private List<Libro> auxiliar; public ListaLibros() { libros = new ArrayList<>(); autores = new ListaAutores(); auxiliar = new ArrayList<>(); libros.add(new Libro(1, 1000, "Java Como Programar", 1000, "Programación", autores.getAutores().get(0), LocalDate.now())); libros.add(new Libro(2, 2000, "C++", 1000, "Programación", autores.getAutores().get(1), LocalDate.now())); libros.add(new Libro(3, 3000, "Python", 1000, "Programación", autores.getAutores().get(1), LocalDate.now())); } public void agregar(Libro nuevo) { libros.add(nuevo); FacesContext fc = FacesContext.getCurrentInstance(); fc.addMessage(null, new FacesMessage("Agregado con exito!!")); } public void borrar(Libro borrado) { boolean encontrado = false; for (int i = 0; i < libros.size() && !encontrado; i++) { if (libros.get(i).getCódigo().equals(borrado.getCódigo())) { libros.remove(i); encontrado = true; } } if (encontrado) { FacesContext fc = FacesContext.getCurrentInstance(); fc.addMessage(null, new FacesMessage("Borrado con exito!!")); } } public void modificar(Libro modificado) { boolean encontrado = false; for (int i = 0; i < libros.size() && !encontrado; i++) { if (libros.get(i).getCódigo().equals(modificado.getCódigo())) { libros.set(i, modificado); encontrado = true; } } if (encontrado) { FacesContext fc = FacesContext.getCurrentInstance(); fc.addMessage(null, new FacesMessage("Modificado con exito!!")); } } public void ordenarAscendente() { libros. sort(Comparator. comparing(Libro ::getCódigo )); } public void ordenarDescendente() { libros. sort(Comparator. comparing(Libro ::getCódigo ). reversed()); } public List <Libro > buscarLibros (String buscado ) { auxiliar.clear(); for (int i = 0; i < libros.size(); i++) { if (libros.get(i).getTitulo().startsWith(buscado)) { auxiliar.add(libros.get(i)); } } return auxiliar; } public List<Libro> getLibros() { auxiliar.clear(); for (int i = 0; i < libros.size(); i++) { auxiliar.add(libros.get(i)); } return auxiliar; } public void setLibros(List<Libro> libros) { this.libros = libros; } @Override return "ListaLibros{" + "libros=" + libros + ", autores=" + autores + '}'; } public ListaAutores getAutores() { return autores; } public void setAutores(ListaAutores autores) { this.autores = autores; } public List<Libro> getAuxiliar() { return auxiliar; } public void setAuxiliar(List<Libro> auxiliar) { this.auxiliar = auxiliar; } }
|
|
|
168
|
Programación / Java / ordenar lista de Perro(s)
|
en: 24 Julio 2019, 08:06 am
|
Hola tengo una duda sobre la sintaxis del metodo para ordenar listas segun el un ID unico, quiero ordenarlo de mayor a menor y viceversa no me acuerdo como era algo parecido a lista.sort(compareTo ) y con Lambda afff no recuerdo
|
|
|
169
|
Programación / Java / pequeña duda de loso objetos de la clase String
|
en: 22 Julio 2019, 08:56 am
|
Hola queria saber porque se dice que los objetos de la clase String son inmutables? Hasta ahora veo que con metodos no se puede modificar un objeto de esa clase, pero al hacer esto veo que se modifica String saludo = "Hola"; saludo = "Chau";
Quiere decir que al hacer esta operacion de asignacion estoy creando otro objeto con el mismo nombre? Ayudaaaaaaaaa!!
|
|
|
170
|
Programación / Java / clases hijas que al ser instanciadas tienen el mismo valor del atributo estatico
|
en: 17 Julio 2019, 06:42 am
|
clases hijas que al ser instanciadas tienen el mismo valor del atributo estatico del padre(clase abstracta) Esto de crear clases hijas sin obtener un nuevo valor para el atributo privado estatico "saldo" en cada instancia , me pueden decir porque es valido esto? yo trate de simular el dinero disponible que posee un cajero y me sale que esta bien pero exijo explicaciones package padre; import java.util.Scanner; /** * * @author Ana Keldysh, Vanessa Navarro */ public abstract class Cajero { protected int transaccion, retiro, deposito, disponible = 500; private static int saldo = 900; //Este valor siempre esta en cada instancia de una clase hija "Cliente", pero no toma el valor 900 sino el ultimo valor modificado o no Scanner entrada = new Scanner (System. in); public void operaciones() { int opcion = 0; do { System. out. println("Elija una opción"); System. out. println("1. Consultar saldo"); System. out. println("2. Extraer dinero"); System. out. println("3. Depositar dinero"); System. out. println("4. Salir"); opcion = entrada.nextInt(); switch (opcion) { case 1: System. out. println("Saldo disponible: $" + disponible ); break; case 2: extraer(); transaccion(false, retiro); break; case 3: depositar(); transaccion(true, deposito); break; case 4: System. out. println("Gracias! Vuelva pronto" + Cajero. getSaldo()); break; default: System. out. println("Opcion incorrecta, intente nuevamente"); } } while (opcion != 4); } public abstract void transaccion(boolean depositar, int dinero); //Método para extraer dinero public void extraer() { retiro = entrada.nextInt(); } //Método para depositar dinero public void depositar() { deposito = entrada.nextInt(); } public static int getSaldo() { return saldo; } public static void setSaldo(int aSaldo) { saldo = aSaldo; } }
package hijo; /** * * @author Ana Keldysh, Vanessa Navarro */ public class Cliente extends Cajero { @Override public void transaccion(boolean depositar, int dinero) { if (depositar) { disponible += dinero; Cajero.setSaldo(Cajero.getSaldo() + dinero); } else { if (dinero > disponible) { System. out. println("Saldo insuficiente"); } else if (dinero > Cajero.getSaldo()) { System. out. println("Lo sentimos, la transacción no puede llevarse acabo"); } else { disponible -= dinero; Cajero.setSaldo(Cajero.getSaldo() - dinero); } } } }
|
|
|
|
|
|
|