Autor
|
Tema: Ayuda con codigo Java (Leído 4,769 veces)
|
paablitto10
Desconectado
Mensajes: 1
|
no se como realizar un codigo en java. Tengo un String o ArrayList llamando Poderes donde estan dentro : Arco,Inteligencia,fuerza y pocima. Otro String o ArrayList llamado Miguel con : inteligencia,paciencia. Y por ultimo uno llamado Agus con : pocima,inteligencia y invisibilidad.
Tengo que comparar el primer string sobre los otros dos y debe salir esto por pantalla:
Arco-Apariciones : 0, Fuerza-Apariciones : 0, Inteligencia-Apariciones : 2, Pocima-Apariciones : 1
|
|
|
En línea
|
|
|
|
srWhiteSkull
|
Lo mejor Pablito es que aprendas fundamentos de la programación y luego programación orientada a objetos aplicado a Java.
Quizás es mejor que aprendas Python y luego cuando sepas programar bien Python saltes a otros lenaguajes con Java o C++ si estás pensando en el desarrollo de aplicaciones de escritorio o programación de videojuegos.
|
|
|
En línea
|
|
|
|
WHK
|
Cada jugador supongo que debiera estar en una lista de tipo List<>(), entonces para sumar haces una iteración por cada uno y sumas las propiedades, donde la suma total es almacenada en una variable de la clase actual que está procesando todo, así obtendrás las sumas de manera dinámica.
Saludos.
|
|
|
En línea
|
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
A mi me surgió una duda acerca de su problema, soy novata en Java y queria saber si se puede modificar el valor de un objeto sin Generics en ArrayList por ejemplo esto lista.add(1);//<-¿Este valor se puede incrementar? lista.add(cualquierCosa);
Y con respecto al problema en general si debería leer algo de Programación Orientada a Objetos, yo igual soy novata asi que hice esto package aplicacion.test; import aplicacion.modelo.dominio.Habilidad; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * * @author Ana Kéldysh */ //Clase Principal que contiene el método main //Declaración del método main public static void main (String[] args ) { List<Habilidad> poderes = new ArrayList<>(); poderes.add(new Habilidad("Arco", 0)); poderes.add(new Habilidad("Inteligencia", 0)); poderes.add(new Habilidad("Fuerza", 0)); poderes.add(new Habilidad("Pocima", 0)); Miguel.add("Inteligencia"); Miguel.add("Paciencia"); Agus.add("Pocima"); Agus.add("Inteligencia"); Agus.add("Invisibilidad"); } public static void compararListas (List poderes, List personaje ) { for (int i = 0; i < poderes.size(); i++) { for (int j = 0; j < personaje.size(); j++) { Habilidad a = (Habilidad) poderes.get(i); if (a.getNombre().equals(personaje.get(j))) { a.setApariciones(a.getApariciones() + 1); } } } } public static void mostrarLista (List poderes ) { for (int i = 0; i < poderes.size(); i++) { if (i < poderes.size() - 1) { System. out. print(poderes. get(i ) + ", "); } else { System. out. println(poderes. get(i )); } } } }
package aplicacion.modelo.dominio; /** * * @author Ana Kéldysh */ public class Habilidad { private int apariciones; public Habilidad(){ } public Habilidad (String nombre, int apariciones ) { this.nombre = nombre; this.apariciones = apariciones; } return nombre; } public void setNombre (String nombre ) { this.nombre = nombre; } public int getApariciones() { return apariciones; } public void setApariciones(int apariciones) { this.apariciones = apariciones; } @Override return nombre + "-Apariciones: " + apariciones; } }
|
|
|
En línea
|
7w7
|
|
|
WHK
|
Con respecto a: List lista = new ArrayList(); lista.add(1);//<-¿Este valor se puede incrementar? lista.add(cualquierCosa); Puedes hacer un: lista.set(0, ++lista.get(0)); Donde set actualiza el valor siempre y cuando sepas cual es el índice de tu item, en mi caso puse 0 porque es el primer item, luego obtiene el item y le hace un ++ al lado derecho. Podría haber hecho un .get(0) + 1 pero era más elegante y usaba menos caracteres hacer un incremento de valor y retorno simultáneo. Cuando defines un valor++ autoincrementa el valor sobre si mismo, pero cuando haces un ++valor retorna el valor sumado. Saludos.
|
|
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
A mi me surgió una duda acerca de su problema, soy novata en Java y queria saber si se puede modificar el valor de un objeto sin Generics en ArrayList por ejemplo esto lista.add(1);//<-¿Este valor se puede incrementar? lista.add(cualquierCosa);
Si podrías incrementarlo como lo tienes en el código con listaInteger.set(0, listaInteger.get(0) + 1);
O, tomando lo que dice WHK, pero no exactamente así, sino Integer value = (Integer) listaInteger. get(0); //cast debido a falta de tipo parametrizado ++value; //Operador de preincremtento, tambien con postIncremento value++; listaInteger.set(0, value);
Importanteen versiones anteriores a java 5, tu podías escribir tranquilamente ese tipo de lineas
y tener la esperanza de que los programadores que usen tu código, recuerden que tu quieres, únicamente Objetos Integer en ella.
Eso requiere un poco de análisis mental y tiempo, no se tendría una vía especifica para conocer el nombre esperado, es decir, si sera un Integer, Double, o hasta, String a StringBuilder.
desde Java 5, tu puedes documentar logrando una interpretación mas fácil a los demás, ese feature se llama generics, el compilador incluso ayuda a que cumplas esa suposición
quedandoList<Integer> lista = new ArrayList<Integer>();
Cuando la versión java 7 se libero, se logro una versión mas corta,
List<Integer> lista = new ArrayList<>();
la forma resumida, utiliza el operador diamante, se llama así porque <>, parece un diamante si inclinas tu cabeza a un lado. Mira la diferencia, de esta linea final HashMap<String, HashMap<String, String>> map1 = new HashMap<String, HashMap<String, String>>();
A esta lineafinal HashMap<String, HashMap<String, String>> map2 = new HashMap<>();
Ambas declaraciones contienen maps anidados, la segunda linea es mas fácil de leer, porque no contiene información redundante. El uso de tipos parametrizadospublic static void mostrarNombres (List lista ) { for(int f=0; f<lista.size(); f++) { final String nombre = (String) lista. get(f );//java.lang.ClassCastException } } public static void main (String ... blabla) { lista.add(new StringBuilder("Ana Kéldysh")); mostrarNombres(lista); }
Si recuerdas cuando hablamos de especificar el tipo de dato, aka tipo parametrizado en la lista, para saber de que tipo sera nuestra lista, que es lo correcto de hacer
En el ejemplo de arriba la linea 3 arroja java.lang.ClassCastException , porque en la linea 12, le añadimos un StringBuilder, esperando en realidad un String en la 3, dando la excepción, todo porque la lista no contiene nada, no especifica nada.
Los Generics fixean eso, permitiendo que escribas el tipo parametrizado, de que deseas una Lista de String, logrando que el compilador tenga información para prevenir que tu causes ese problema en primer lugar; List<String> names = new ArrayList<String>(); names.add(new StringBuilder("Ana Kéldysh")); // no compilara
Tendríamos un error del compilador(tiempo de compilación) lo cual es bueno, porque te ayudara a detectar de inmediato el error, a diferencia de descubrir ese error luego.
|
|
« Última modificación: 27 Abril 2019, 21:38 pm por rub'n »
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
Me sale un error con esto List lista = new ArrayList(); lista.add(1); lista.set(0, ++lista.get(0));
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types: java.lang.Object cannot be converted to java.lang.Integer at aplicacion.test.Principal.main(Principal.java:29)
Lo solucioné asi Integer value = (Integer) lista.get(0);
|
|
« Última modificación: 27 Abril 2019, 21:52 pm por Beginner Web »
|
En línea
|
7w7
|
|
|
srWhiteSkull
|
Indícale que vas a trabajar con enteros.
|
|
|
En línea
|
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
Esta bien lo que dices pero yo quiero trabajar sin Generics
|
|
|
En línea
|
7w7
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con codigo de java
Java
|
pakosamuel
|
5
|
3,904
|
5 Junio 2010, 21:35 pm
por Leyer
|
|
|
Ayuda con código Java!
Java
|
compunova
|
2
|
2,772
|
18 Octubre 2011, 23:43 pm
por klaine
|
|
|
Ayuda con código (aprendiendo java)
Java
|
Minina89
|
2
|
2,069
|
14 Enero 2013, 01:09 am
por Minina89
|
|
|
Ayuda con un codigo de java?
Java
|
omar199609
|
2
|
2,187
|
7 Junio 2015, 17:08 pm
por Usuario Invitado
|
|
|
Ayuda con código Java
Java
|
alvarodecadiz9
|
1
|
1,918
|
10 Septiembre 2016, 12:48 pm
por alvarodecadiz9
|
|