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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Leer un arreglo sin tomar en cuenta sus valores por defecto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Leer un arreglo sin tomar en cuenta sus valores por defecto  (Leído 6,059 veces)
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Leer un arreglo sin tomar en cuenta sus valores por defecto
« en: 25 Abril 2019, 05:40 am »

Hola tengo un arreglo de 10 posiciones donde solo coloque valores en las 4 primeras y quiero recorrer el arreglo pero sin leer los valores por defecto que son los 0, como hago o no se puede?

Código
  1. int arreglo[] = new int[10];
  2.  
  3.        arreglo[0] = 1;
  4.        arreglo[1] = 2;
  5.        arreglo[2] = 3;
  6.        arreglo[3] = 4;
  7.  
  8.        for (int i = 0; i < arreglo.length; i++) {
  9.            System.out.print(arreglo[i]);
  10.        }


En línea

7w7
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #1 en: 25 Abril 2019, 09:24 am »

Hola tengo un arreglo de 10 posiciones donde solo coloque valores en las 4 primeras y quiero recorrer el arreglo pero sin leer los valores por defecto que son los 0, como hago o no se puede?

Código
  1. int arreglo[] = new int[10];
  2.  
  3.        arreglo[0] = 1;
  4.        arreglo[1] = 2;
  5.        arreglo[2] = 3;
  6.        arreglo[3] = 4;
  7.  
  8.        for (int i = 0; i < arreglo.length; i++) {
  9.            System.out.print(arreglo[i]);
  10.        }

No entendí muy bien, quieres recorrer las posiciones menos la posición cero, o no imprimir los valores que sean iguales a cero? , O sea, filtrar?


En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
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 Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #2 en: 25 Abril 2019, 15:42 pm »

Si, solo quiero leer las posiciones donde ingrese valores, las otras no  ;-)
En línea

7w7
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #3 en: 25 Abril 2019, 15:50 pm »

Si, solo quiero leer las posiciones donde ingrese valores, las otras no  ;-)

Código
  1. for(int f=0; f<4; f++)

No tengas miedo a probar Chavalina  :D, desde 0 para incluir ese Index, y hasta menos 4 para no incluir la posición 5
« Última modificación: 25 Abril 2019, 15:57 pm por rub'n » En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #4 en: 25 Abril 2019, 16:36 pm »

En ese caso no sería mejor utilizar un objeto de tipo List<> en ves de un array nativo?, de esa manera puedes tener objetos nulos, donde el valor por defecto sea nulo y dentro del for dices que si el valor no es nulo entonces se procesará, de esa manera no dependerás de la cantidad de valores que llenes, esto funciona solo si usas los objetos de Java en ves de los primitivos, por ejemplo List<Integer> list; , incluso puedes utilizar lambda.

Saludos.
En línea

Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #5 en: 25 Abril 2019, 18:51 pm »

Claro, ahí si funcionaría  :laugh:
¿Así, verdad?

Código
  1. ArrayList<Integer> arreglo = new ArrayList<>();
  2.        arreglo.add(1);
  3.        arreglo.add(2);
  4.        arreglo.add(3);
  5.  
  6.        for (int i : arreglo) {
  7.            if (Objects.nonNull(i)) {
  8.                System.out.println(i);
  9.            }
  10.        }

¿Por qué no funciona si coloco en el ArrayList<int> en lugar de ArrayList<Integer>???

Ya veo que no funcionará con el arreglo simple :xD
« Última modificación: 25 Abril 2019, 19:11 pm por Beginner Web » En línea

7w7
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #6 en: 25 Abril 2019, 19:09 pm »

Claro, ahí si funcionaría  :laugh:
¿Así, verdad?
¿Por qué no funciona si coloco en el
Código
  1. ArrayList<int> en lugar de ArrayList<Integer>
 ???

Código
  1. ArrayList<Integer> arreglo = new ArrayList<>();
  2.        arreglo.add(1);
  3.        arreglo.add(2);
  4.        arreglo.add(3);
  5.  
  6.        for (int i : arreglo) {
  7.            if (Objects.nonNull(i)) {
  8.                System.out.println(i);
  9.            }
  10.        }

Y con lo del arreglo comun, ya veo que no funcionará  :xD

Lee un poco más detallado el mensaje de WHK , mejor dicho el gran WHK, porque las listas genéricas funcionan únicamente con Objetos,. El objeto que representa al primitivo int, es Interger, o sea, la clase envoltoria(wrapper) es Integer.

Ese for que usas en la línea 6 carece de índice, se llama for extendido

Usa el for normal que si tiene índice.

Código
  1. for(int f=0; f<arreglo.size(); f++)

Edito, ambos for sirven, pero cada uno para una cosa, todo depende lo que quieras hacer,

Con el arreglo normal puedes usar el for normal, Stream, IntStream, Arrays.stream

Recuerda también que las clases van en mayúsculas, o sea, Double, Integer, Boolean, Long etc... Nomenclatura camel case

« Última modificación: 25 Abril 2019, 19:29 pm por rub'n » En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
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 Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #7 en: 25 Abril 2019, 19:32 pm »

Haaaaaaaaaaa!!!

Código
  1. ArrayList<Integer> lista = new ArrayList<>();
  2.        lista.add(1);
  3.        lista.add(2);
  4.        lista.add(3);
  5.  
  6.        for (int i=0; i<lista.size(); i++) {
  7.            if (Objects.nonNull(i)) {
  8.                System.out.println(i);
  9.            }
  10.        }
« Última modificación: 25 Abril 2019, 19:40 pm por Beginner Web » En línea

7w7
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #8 en: 25 Abril 2019, 19:34 pm »

Tú me recuerdas tanto a las primillas mias  :xD
En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Leer un arreglo sin tomar en cuenta sus valores por defecto
« Respuesta #9 en: 26 Abril 2019, 04:50 am »

Con lamda no necesitas iteraciones:

Código:
lista.stream().filter(Objects::nonNull).reduce((k, v) -> v);

Esto retorna todos los valores no nulos, incluso puedes aplicar funciones de llamada syncrónica dentro de lambda para procesar cada valor sin iteraciones.

Claramente internamente la JVM realiza iteraciones, pero se hace a bajo nivel, el performance es mucho mejor.

De todas maneras por mas que lo pienso no encuentro sentido alguno tener un listado vacio de items y menos aun cuando la pila se vuelve muy grande.

Saludos.
En línea

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

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines