elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Tres preguntillas sobre arrays
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tres preguntillas sobre arrays  (Leído 3,923 veces)
cointreau

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Tres preguntillas sobre arrays
« en: 11 Abril 2012, 02:54 am »

Buenas, estoy empezando con java y me han mandado una práctica que no consigo resolver debido a estas tres preguntas a las que no encuentro respuesta:

¿Cómo sé si un objeto concreto está en un array?

¿Cómo elimino un objeto concreto en un array?

¿Cómo añado un elemento a un array?

Si alguien sabe, por favor le agradecería que me lo dijera con algún ejemplillo que lo veo bastante más claro, un saludo


En línea

KuraraGNU

Desconectado Desconectado

Mensajes: 209



Ver Perfil
Re: Tres preguntillas sobre arrays
« Respuesta #1 en: 11 Abril 2012, 10:11 am »

¿Cómo sé si un objeto concreto está en un array?

Haces un for que recorra todos los indices del array desde el 0 hasta ArrayList.size() -1 (He usado la clase ArrayList, si quieres usar la clase Array busca aqui pero te recomiendo leerte como funciona el ArrayList, sino puedes simplemente crear un array con tipo[longitud]) y lo comparas con el objeto a buscar, pero ojo, no con el objeto en si, porque sino comparas dos direcciones de memoria que nunca van a ser iguales, tienes que usar un metodo que sea una propiedad del array, por ejemplo si es un array de perros tendrias que usar perros[X].raza() == "razaBuscada" Si hay varios objetos con el mismo nombre pues ya averiguatelas tú, guarda los resultados en otro array y luego de ese array vuelves a comparar por otro metodo, haz if encadenados etc. Ya a gusto de cada uno es eso.

¿Cómo elimino un objeto concreto en un array?

¿Cómo añado un elemento a un array?

A todas estas preguntas hay respuestas aqui: (Método add() remove()...)
http://docs.oracle.com/javase/7/docs/jdk/api/javadoc/doclet/index.html?com/sun/javadoc/package-summary.html Si usas el tipo variable[] nombre entonces añadir y borrar datos es más complejo porque primero tienes que poner a null el valor de la posicion y luego redimensionar el array, en fin, no me acuerdo bien como funcionaba y tendría que estar programando para verlo, pero si usas el ArrayList es como un Object[] nombre, porque es un array de objects.
Si me dices exactamente cual quieres usar yo te doy más datos (poniendo links a explicaciones, claro :D)


« Última modificación: 11 Abril 2012, 10:18 am por KuraraGNU » En línea

adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Tres preguntillas sobre arrays
« Respuesta #2 en: 11 Abril 2012, 10:27 am »

Si utilizas arrays "a pelo" todas las operaciones que has indicado anteriormente las haces de forma manual como te han indicado anteriormente, sin embargo en Java  el Collections Framework te permite manipular listas y arrays de una forma muy fina, por ejemplo usando clases como Arrays y Collections puedes realizar muchas de las operaciones comunes sobre listas simples (arrays) Mapas y listas doblemente enlazadas. Todas estas clases se encuentran en la distribución estandar de Java en el paquete "java.util". Reviza los JavaDocs disponibles.
En línea

cointreau

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Tres preguntillas sobre arrays
« Respuesta #3 en: 11 Abril 2012, 12:17 pm »

Haces un for que recorra todos los indices del array desde el 0 hasta ArrayList.size() -1 (He usado la clase ArrayList, si quieres usar la clase Array busca aqui pero te recomiendo leerte como funciona el ArrayList, sino puedes simplemente crear un array con tipo[longitud]) y lo comparas con el objeto a buscar, pero ojo, no con el objeto en si, porque sino comparas dos direcciones de memoria que nunca van a ser iguales, tienes que usar un metodo que sea una propiedad del array, por ejemplo si es un array de perros tendrias que usar perros[X].raza() == "razaBuscada" Si hay varios objetos con el mismo nombre pues ya averiguatelas tú, guarda los resultados en otro array y luego de ese array vuelves a comparar por otro metodo, haz if encadenados etc. Ya a gusto de cada uno es eso.

A todas estas preguntas hay respuestas aqui: (Método add() remove()...)
http://docs.oracle.com/javase/7/docs/jdk/api/javadoc/doclet/index.html?com/sun/javadoc/package-summary.html Si usas el tipo variable[] nombre entonces añadir y borrar datos es más complejo porque primero tienes que poner a null el valor de la posicion y luego redimensionar el array, en fin, no me acuerdo bien como funcionaba y tendría que estar programando para verlo, pero si usas el ArrayList es como un Object[] nombre, porque es un array de objects.
Si me dices exactamente cual quieres usar yo te doy más datos (poniendo links a explicaciones, claro :D)

Muchísimas gracias, la primera pregunta me la has resuelto.. las dos segundas se me olvidó especificar que no son arrayList sino arrays de este tipo variable[] . Busque en la API de java para hacerlo como los arrayList pero no encontré ningún método para añadir o eliminar. Si no recuerdas cómo era no pasa nada, me has ayudado ya suficiente y creo que podré sacarlo. Por si acaso lo recuerdas te explico cómo serían los métodos que tengo que hacer:
-Añadir:
un array de 5 elementos como máximo, añadir un elemento al array, da igual en qué posición y, si está lleno en array pues eliminar el elemento con mayor valor y meter el que queremos.
-Eliminar:
Lo mismo, un array de 5 elementos como mucho, eliminar el objeto del array que nosotros le pedimos.
No te pongo mi código porque me gusta aprender a hacerlo yo y me parece mal que me resuelvan cosas que yo tengo que hacer.
De antemano, muchísimas gracias por la ayuda a los dos que me han respondido, un saludo ;)
En línea

KuraraGNU

Desconectado Desconectado

Mensajes: 209



Ver Perfil
Re: Tres preguntillas sobre arrays
« Respuesta #4 en: 11 Abril 2012, 13:13 pm »

Busque en la API de java para hacerlo como los arrayList pero no encontré ningún método para añadir o eliminar. Si no recuerdas cómo era no pasa nada, me has ayudado ya suficiente y creo que podré sacarlo. Por si acaso lo recuerdas te explico cómo serían los métodos que tengo que hacer:

Te dije (aunque no lo remarqué por eso quizás no te diste cuenta): .add() y .remove() están ahí en la API.

Si tienes que hacerlo de la otra forma (que si es para trabajo de clase te obligan a aprender también esa aunque luego no se use tanto) entonces si es un coñazo, pero hay que hacer lo que dije, borrar el valor (volcar lo que queda a un array temporal) y luego redimensionar el array, porque sigues teniendo el hueco aunque esté vacío. Para añadir tienes que volcar los datos a otro array, redimensionar el viejo y volverle a pasar los datos que tenías en la array temporal. El método add() y remove() te autoredimensiona ya las cosas automáticamente.
En línea

cointreau

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Tres preguntillas sobre arrays
« Respuesta #5 en: 11 Abril 2012, 13:32 pm »

Te dije (aunque no lo remarqué por eso quizás no te diste cuenta): .add() y .remove() están ahí en la API.

Si tienes que hacerlo de la otra forma (que si es para trabajo de clase te obligan a aprender también esa aunque luego no se use tanto) entonces si es un coñazo, pero hay que hacer lo que dije, borrar el valor (volcar lo que queda a un array temporal) y luego redimensionar el array, porque sigues teniendo el hueco aunque esté vacío. Para añadir tienes que volcar los datos a otro array, redimensionar el viejo y volverle a pasar los datos que tenías en la array temporal. El método add() y remove() te autoredimensiona ya las cosas automáticamente.

Sí me di cuenta, pero que en la API según probé los métodos .add() y .remove() me di cuenta de que no eran para el tipo de arrays que estoy usando sino para los arrayLists que aún no he tocado. De todas formas el procedimiento que me acabas de decir creo que servirá, usando arrays temporales no se me había ocurrido. Muchísimas gracias por todo y perdón por las molestias, un saludo
En línea

KuraraGNU

Desconectado Desconectado

Mensajes: 209



Ver Perfil
Re: Tres preguntillas sobre arrays
« Respuesta #6 en: 11 Abril 2012, 13:49 pm »

De nada hombre, es lo que hacía yo en el curso ^_^
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Tres preguntillas sobre arrays
« Respuesta #7 en: 11 Abril 2012, 17:47 pm »

Puedes utilizar las siguientes clases y objetos.

ArrayList lista = new ArrayList();
List<String> lista = new ArrayList<String>();
String lista[] = new String[5];
List lista= new List(5);

Depende de como lo vayas a utilizar.

Saludos.
En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MOD] 2 preguntillas.... sobre vcd
Multimedia
ezori 4 2,489 Último mensaje 1 Mayo 2004, 00:36 am
por ezori
Preguntillas sobre DISCO DURO
Hardware
Ershin 2 4,507 Último mensaje 16 Diciembre 2010, 09:46 am
por simorg
[BATCH] Duda sobre ¿Arrays? [Solucionado]
Scripting
Karcrack 3 5,275 Último mensaje 4 Febrero 2011, 15:44 pm
por Edu
Preguntillas sobre apuntadores en c++
Programación C/C++
vazquinhos 3 1,912 Último mensaje 23 Agosto 2012, 03:02 am
por ecfisa
Preguntillas sobre las cámaras termográficas
Electrónica
Anna123 1 2,425 Último mensaje 9 Julio 2014, 10:57 am
por Jota_j
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines