Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Arreglo dinamico en java

Buenas tardes:
Necesito generar un arreglo dinámico tal que al yo ingresar la palabra "include 5" el me incluya el 5 en mi arreglo; si le ingreso "buscar 5" el me busque si el 5 esta dentro de mi arreglo" y al introducir la palabra "fin", me diga si encontro el elemento en el arreglo:

Ejemplo de entrada
incluir -132
incluir -761
incluir -45
buscar -30
incluir -680
incluir -1024
buscar -45
fin

Ejemplo de salida
no encontrado
encontrado

Hasta ahora llevo esto, ayuda por favor:


import java.util.*;

public class Main {

public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
ArrayList<Integer> arreglo = new ArrayList<Integer>();
String a = "incluir";
String b = "buscar";
String c = "fin";
String k;
int n, s;
k = entrada.nextLine();
n = entrada.nextInt();
if (k == a) {
arreglo.add(n);
}
else if (k == b) {
arreglo.indexOf(n);
}

else
System.out.println(arreglo);
}
}

febrero 20, 2017 | Unregistered CommenterFredy

La igualdad de los String se debe comprobar con su método equals, no con ==

febrero 21, 2017 | Registered Commenterchoces

Hasta ahora tenglo el ejercicio asi, pero no me funciona:

import java.util.Scanner;
import java.util.ArrayList;
public class Main {

public static void main(String[] args) {
Scanner teclado = new Scanner (System.in);
ArrayList<Integer> numeros = new ArrayList<Integer>();
int valor,x;
String a;


a=teclado.nextLine();
valor=teclado.nextInt();
while (a.equals("fin")) {

if (a.equals("incluir")) {
numeros.add(valor);
}
else if (a.equals("buscar")) {
numeros.indexOf(valor);
for(x=0;x<numeros.size();x++){
if (numeros.indexOf(valor)==-1) {
System.out.println("no encontrado");}
else
System.out.println("encontrado");
}
}
System.out.println(numeros);
break;
}



} }

febrero 23, 2017 | Unregistered CommenterFredy

Creo que lo que quieres es
while (!"fin".equals(a)) // que siga mientras no se introduzca "fin"
Las constantes están mejor a la izquierda del equals, porque si el valor a comparar es null, no lanzará una excepción NPE, sino que el resultado será false.

Por otra parte,

a=teclado.nextLine();
valor=teclado.nextInt();

deberían estar dentro el bucle while, o los valores solo se leerán una vez desde el teclado

febrero 23, 2017 | Registered Commenterchoces

No entiendo bien cual es el problema, no me ejecuta:

import java.util.Scanner;

import java.util.ArrayList;

public class Main {

public static void main(String []args) {

Scanner teclado = new Scanner (System.in);

ArrayList<Integer> numeros = new ArrayList<Integer>();

int valor,x;
String a;

do {

a=teclado.nextLine();

valor=teclado.nextInt();

if ("incluir".equals(a)) {

numeros.add(valor);

}

else if ("buscar".equals(a)) {

numeros.indexOf(valor);

for(x=0;x<numeros.size();x++){

if (numeros.indexOf(valor)==-1) {

System.out.println("no encontrado");}

else

System.out.println("encontrado");

}

}

}
while (!"fin".equals(a));

} }

febrero 23, 2017 | Unregistered CommenterFredy

Hay un antiguo problema, que parece que sigue sin resolverse, al usar un nextInt tras un nextLine.
Prueba a usar
valor=Integer.parseInt(teclado.nextLine());

febrero 23, 2017 | Registered Commenterchoces

espero que te ayude
he cambiado el "indexOf()" por "contains()" este ultimo retorna un valor boolean.


Quedaria asi.


public class ArregloDinamico {

static ArrayList<Integer> listaEnteros = new ArrayList<>();
static int valor;
static boolean resultado;

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);
String palabra = entrada.nextLine();

while(!(palabra.equals("fin")) ){
if (palabra.equals("incluir")){
valor = entrada.nextInt();
añadir(valor);
}

if (palabra.equals("buscar")){
valor = entrada.nextInt();
buscar(valor);
}
palabra = entrada.nextLine();
}
fin(resultado);

}
public static boolean buscar(int v)
{ resultado = false ;
resultado = listaEnteros.contains(v);

return resultado ;
}
public static void añadir( int v)
{
listaEnteros.add(v);
}

public static void fin(boolean resultado)
{
if(resultado== true)
System.out.println("Encontrado " );
else
System.out.println("No encontrado");
}
}

marzo 2, 2017 | Unregistered Commenterteto