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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Recorrer arraylist y eliminar elementos pares
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recorrer arraylist y eliminar elementos pares  (Leído 4,183 veces)
Armonicufer

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Recorrer arraylist y eliminar elementos pares
« en: 9 Noviembre 2016, 14:38 pm »

Hola es un Ejercicio de clase y estoy algo verde este es el anunciado

Edit: Ya tengo hasta la arte de pares , lo de suprimir los decimales mayores de 5 no tengo ni idea
1. Cree ArrayList de numeros, tanto enteros como decimales. Tiene que haber mil elementos.
Recorra la lista y elimine los pares y elimine los que tengan un numero decimal mayor de 5.


Citar
import java.util.ArrayList;

import java.util.concurrent.ThreadLocalRandom;

public class Ejecutable {

   public static void main(String[] args) {
      ArrayList List1 = new ArrayList();

      for (int x = 0; x < 500; x++) {
         int numero = ThreadLocalRandom.current().nextInt(1, 500 + 1);
         double numero2 = ThreadLocalRandom.current().nextDouble(500, 1000 + 1);

         List1.add(numero);
         List1.add(numero2);

      }

      int i = 0;

      for (; i < List1.size(); i++) {
         if (List1.get(i) instanceof Integer) {
            Integer aux = (Integer) List1.get(i);
            if (aux % 2 == 0) {
               List1.remove(i);
            }

         }

      }
      System.out.println(List1.size());
      System.out.println(List1);
      

         }

      }


« Última modificación: 9 Noviembre 2016, 22:34 pm por Armonicufer » En línea

MayTheLulzBeWithYou

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Recorrer arraylist y eliminar elementos pares
« Respuesta #1 en: 10 Noviembre 2016, 21:29 pm »

Buenas noches,
si llevas poco tiempo programando lo primero que te recomiendo es que tengas siempre a mano la API de Java para ver todas las funciones disponibles de la clase que estás tocando.
Con estas funciones y dándole un poco de vueltas al coco conseguirás resolver prácticamente cualquier cosa que se te plantee.
Por otra parte, intenta ir familiarizándote con toda la jerga (conceptos) correspondientes. Créeme, esto te ahorrará muchos dolores de cabeza.

Te pongo un ejemplo:

En tu caso estás tratando con variables de tipo double, que es un tipo primitivo. Pero como sabrás en Java absolutamente todo son objetos (clases), de esta manera, el objeto correspondiente al tipo primitivo double es Double.
Por lo tanto miramos la descripción de dicha clase, para comprobar si existe alguna función que nos permita manipular los decimales:
https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html

En principio vemos que no tenemos la posibilidad de realizar las comprobaciones que nos pide el enunciado con estas funciones, por lo que tendremos que tirar de otra clase.
Observamos que hay una función llamada toString() cuya descripción dice: "Returns a string representation of this Double object."

De acuerdo, pues vamos a la clase String (clase correspondiente al tipo de la biblioteca estándar de java String) y vamos a revisar si tenemos alguna función que nos permitiese segmentar la parte decimal del resto del número para realizar la comprobación que nos piden:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
Aquí se nos presenta esta función lastIndexOf(String str), cuya descripción dice: "Returns the index within this string of the last occurrence of the specified substring."
Por otro lado observamos que existe una función llamada substring(int beginIndex) que nos dice: "Returns a new string that is a substring of this string."

En este punto tenemos la posibilidad de obtener un entero con la posición de la cadena de texto que le proporcionemos. A su vez podemos extraer una cadena de texto (desde el índice de la cadena que hayamos escogido previamente hasta el final) de otra cadena más grande.
Para ello podríamos tomar el carácter "." (separador decimal) como referencia.

Te muestro un pequeño ejemplo donde verás como se juega con estas funciones
Citar
public static void main (String[] args){
      double x = 5.01234;
      double y = 15.5;

      String XtoS = Double.toString(x);
      String YtoS = Double.toString(y);

      System.out.printf("Valor X: %f\n",x);
      System.out.printf("Valor Y: %f\n",y);
      System.out.printf("Valor X toS: %S\n",XtoS);
      System.out.printf("Valor Y toS: %S\n",YtoS);

      int Xindex = XtoS.lastIndexOf(".");
      int Yindex = YtoS.lastIndexOf(".");
      
      int Xdecimal = Integer.parseInt(XtoS.substring(Xindex+1));
      int Ydecimal = Integer.parseInt(YtoS.substring(Yindex+1));

      System.out.printf("Decimales de X: %d\n",Xdecimal);
      System.out.printf("Decimales de Y: %d\n",Ydecimal);
   }


« Última modificación: 10 Noviembre 2016, 21:34 pm por nohumanbinary » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
denuevo yo con mis problemas en java(recorrer el arraylist) « 1 2 »
Java
Toryas 13 17,871 Último mensaje 27 Octubre 2007, 00:48 am
por Toryas
Recorrer ciertos elementos en JS
Desarrollo Web
Riki_89D 1 4,517 Último mensaje 10 Enero 2011, 20:09 pm
por Nakp
¿Cómo ordenar un ArrayList de elementos-registro según uno de sus campos?
Java
reygecko 1 4,574 Último mensaje 17 Enero 2013, 00:00 am
por reygecko
[Ayuda] Ordenar los elementos de un ArrayList
Java
jscrip 4 3,316 Último mensaje 9 Julio 2013, 07:42 am
por jscrip
Editar elementos en un ArrayList
Java
i33naxo 0 2,826 Último mensaje 8 Enero 2017, 18:06 pm
por i33naxo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines