Insertar en arrays

frlang
22 de Junio del 2006
Hola:

Por favor, ¿podéis indicarme por qué no puedo insertar en los arrays especificados? Se trata de insertar por teclado 5 elementos en cada array y mostrarlos por pantalla (bucles while).

Mil gracias.

--------------------------------

import java.io.*;

public class IntroDept {
public static void main(String args[])throws IOException{

//declaramos los arrays

String nombre_empresa[] = new String[5];
String direcciones[] = new String[5];


//Creación del flujo para leer datos
InputStreamReader isr=new InputStreamReader(System.in);

//Creación del filtro para optimizar la lectura de datos
BufferedReader br=new BufferedReader(isr);

//rellenamos cada uno de los arrays

for (int i=1;i<5;i++)
{
System.out.print("Teclea los nombres de las empresas: ");
//Lectura de datos mediante el método readLine()
String texto1=br.readLine();
nombre_empresa[i]=new String ("texto1");
}



for (int j=0;j<5;j++)
{
System.out.print("Teclea la direccion: ");
String texto2=br.readLine();
direcciones[j]=new String ("texto2");
}

//Mostramos los elementos de cada array por pantalla
/*while (k<nombre_empresa.lenght)
{

System.out.println( "Elemento " + k + ": " + nombre_empresa[k]);
k++;

}

while (m<=nombre_empresa.lenght)
{

System.out.println( "Elemento " + m + ": " + direccion[m]);
m++;

}

Oskr
22 de Junio del 2006
en vez de usar esos arrays usa mejor un ArrayList.. entonces seria
ArrayList nombre_empresa = new ArrayList();
y cuando ingreses un dato
nombre_empresa.add(texto1);

al sacar el dato, tienes q castearlo
String sacaDato = ((String)(nombre_empresa.get(posicion)));

frlang66
22 de Junio del 2006
hola de nuevo,
al final he conseguido con el arraylist introducir los datos pero si introduzco en el código las instrucciones para sacar los datos, me pega el siguiente casque al introducir el segundo dato:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size:
1
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at IntroDept.main(IntroDept.java:29)

¿Podeis echarle un vistazo.
Gracias.

import java.io.*;
import java.util.ArrayList;

public class IntroDept {
public static void main(String args[])throws IOException{

//declaramos los arrays

ArrayList nombre_empresa = new ArrayList();
ArrayList direcciones = new ArrayList();



//Creación del flujo para leer datos
InputStreamReader isr=new InputStreamReader(System.in);

//Creación del filtro para optimizar la lectura de datos
BufferedReader br=new BufferedReader(isr);

//rellenamos cada uno de los arraylists

for (int i=1;i<=4;i++)
{
System.out.print("Teclea los nombres de las empresas: ");
//Lectura de datos mediante el método readLine()
String texto1=br.readLine();
nombre_empresa.add(texto1);
String sacaDato = ((String)(nombre_empresa.get(i)));
System.out.print("Lista de direcciones: " + sacaDato);
}



for (int j=0;j<=4;j++)
{
System.out.print("Teclea la direccion: ");
String texto2=br.readLine();
direcciones.add(texto2);
String sacaDato2 = ((String)(direcciones.get(j)));
System.out.print("Lista de empresas: " + sacaDato2);
}




}
}

freddyucv
22 de Junio del 2006
supongo que te da un ArrayBoundException es por que los ciclos for inician en 1 hasta 5 los arreglos estan inicializados a 5 asi que los elementos van de 0 a 4.

si las entradas por teclado pueden ser 5 o menos usa mejor el ArrayList.