Arreglos en java

Arreglos:

Los arreglos se pueden definir como objetos en los que podemos guardar mas de una variable, es decir, al tener un unico arreglo, este puede guardar multiples variables de acuerdo a su tamaño o capacidad, es importante recordar que las variables guardadas deben ser del mismo tipo, por ejemplo: Si tenemos un arreglo de tipo Numerico que puede almacenar 10 variables, solo podra almacenar 10 numeros diferentes, no otras variables como caracteres o Strings.

Existen 2 tipos de arreglos, los unidimensionales, y los multidimensionales(generalmente 2 dimensiones y se les denomina matrices), en esta lección veremos como declarar y utilizar los arreglos unidimensionales, estos son mas sencillos y faciles de comprender, y pueden servirnos para muchas aplicaciones.

Declaración:

La estructura de declaración de un arreglo es la siguiente:

tipo_dedato [] nombre_variable;  //tambien puede declararse “tipo_dedato nombre_variable[];”

ejemplos:

String array[]; //donde array es un arreglo que guardara variables tipo Strings
double array2[]; //donde array2 es un arreglo que guardara variabels tipo double
int [] array3;   //donde array3 es un arreglo que guardara variables tipo int(numericas)

Video declarar arreglos en java:

Definir tamaño de arreglos:
Para asignar a un arreglo su tamaño o capacidad, se hace de la siguiente forma:

arreglo = new tipo_dedato[capacidad];

ejemplo:

array = new String[10];   //el arreglo array guardara hasta un maximo de 10 variables de tipo String

Para realizar una declaración de un arreglo y definir su tamaño en una misma linea se puede usar la siguiente estructura:

String array[] = new String[10];  //se declara un arreglo y se asigna su tamaño en una misma linea

Asignación de valores a elementos del array

Una vez se tiene declarado un arreglo, y al mismo se le ha asignado un tamaño o capacidad, podemos accesar a los datos dentro del mismo y asignarle valores. Para hacer esto es necesario proceder de la siguiente forma:

arreglo[indicador]=valor;

ejemplos:

array[0] = "Ejemplo"; //aqui se asigna el valor "Ejemplo" a un arreglo de String en su primera posicion
array2[3] = 5;      //se asigna un valor de 5 al 4to elemento de un arreglo numerico;

Es importante recordar que para accesar a los datos guardados en un arreglo se utilizan indicadores iniciando desde el “0″, si un arreglo tiene un tamaño de 10 variables, entonces se puede accesar a sus elementos con los indicadores del 0 al 9.

 

A continuaciòn un ejemplo mas completo:

int array1[]; //declaracion arreglo de tipo numerico

array1 = new int[3]; //tamaño del arreglo es 3 elementos

//asignacion de valores a elementos del arreglo;

array[0] =2;

array[1] = 10;

arra[2] = 7;

System.out.println("El valor de la posicion 1 en el arreglo es" + array[0]);

Fin del ejemplo:
Esperamos esta lección te haya sido de utilidad.{jcomments on}

 

Acerca del autor:

Mi nombre es Jorge Villalobos, soy Colombiano de nacimiento y resido en México desde 2005,actualmente soy el creador de codigoprogramacion.com Soy ingeniero en tecnologías de información y comunicaciones y trabajo de tiempo completo desarrollando aplicaciones web. En general me considero un tipo normal, me gusta salir, divertirme, y uno de mis hobbies es programar y hacer tutoriales para compartir conocimiento, me gusta la pizza, el ajedrez y tomar una que otra cerveza los fines de semana. Espero que este proyecto ayude a ayudar a los demás.

Twitter del autor:

35 comments

  1. Puis-ϳe piquer certaines lignes sur un blog ?

  2. Ricardo says:

    Excelente tus explicaciones, gracias por ese aporte a quienes estamos inmersos en el mundo de la Informática.
    Soy alumno de Ingenieria informatica y estoy empezando; quisiera molestarte con la siguiente inquietud:

    Puedo declarar un arreglo de la siguioente manera:

    Declaraciones
    Tipos
    ArregloDiezEnteros = Arreglo[10] Entero
    Variables
    arr1: ArregloDiezEnteros

    La pregunta es porque la palabra ARREGLO es reservada pero si es parte de una palabra compuesta se puede utilizar?

    Gracias

    • edgar says:

      hola soy nuevo en el el campo por favor nesecito ayuda con este programa:
      UNA EMPRESA TIENE 10 ALMACENES, HACER UN PROGRAMA QUE CALCULE EL PROMEDIO DE VENTAS PO MES MENSUALES SIS SON SUPERIORES DEL PROMEDIO.
      por favor ayuda!!!!!!!!!!

      • edgar says:

        hola soy nuevo en el el campo por favor nesecito ayuda con este programa:
        UNA EMPRESA TIENE 10 ALMACENES, HACER UN PROGRAMA QUE CALCULE EL PROMEDIO DE VENTAS PO MES MENSUALES SI SON SUPERIORES DEL PROMEDIO.
        por favor ayuda!!!!!!!!!!

  3. liko says:

    hola, necesito ayuda para mostrar un ticket de una gasolineria, pero no tengo idea de como hacerlo; tiene que imprimir cuantos autos llegan cuantos litros se les despacha, y tiene que avisar que ya no tiene combustible para despachar, de echo es ai donde debe mostrar el ticket.
    Espero puedan ayudarme…ME URGE!!!

  4. Carlos says:

    Disculpa, quiero usar un array para resolver una ecuación diferencial con el método multi-pasos de Adams, el problema es que no sé como poner el comando para que que me los ultimos cuatro valores calculados para generar el quinto, y así sucesivamente.

  5. kakaroto says:

    wena foto oye cauro xD. Buena info. te dejo mis 10. xD

  6. Very shortly this website will be famous among all blogging and
    site-building people, due to it’s fastidious content

  7. Gracias Jorge, como siempre muy bien explicado.

  8. Chingonsote awebo!

    posd. la de redaccion se la come

  9. Marco says:

    Hola.

    Muy buenos los tutoriales, me gustaria saber si han hecho alguno de crear un ArrayList dentro de un ArrayList.

  10. dany says:

    se equivoco array[0] en lugar de array1[0]

  11. Nazareth says:

    Como declaró arreglos de más dimensiones?

  12. Carolina says:

    Necesito un programa que al leer un numero lo imprima en forma ascendente y descendente al mismo tiempo por ejemplo:
    numero 5
    imprimir
    154321
    124321
    123321
    123421
    123451

  13. elias says:

    hijo me podrias ayudar a realizar un arreglo es que aun estoyu en iniio de programacion con java y no logro entender el funcionamientond ejava con esto de los arreglos
    +

  14. bonitoo says:

    hola bueno tengo un problema en java un programa de array en jaca alguien podria ayudarme…

  15. luisa says:

    Hola, Tengo un formulario de empleados en donde tiene un detalle que son los datos de usuarios, este solo formulario envia la informacion a listas y luego a una BD my SQL a dos tablas, una con la informacion del empleado y la otra con la informacion de usuario.
    Mi duda y si me pueden ayudar es como enviar la informacion de estas dos tablas a la ves desde el formulario… tengo este codigo pero no me esta dejando enviar y no presenta error :c
    if (ev.getSource() == jmivolver) {
    lstempleados.insertarEmpleados(con.getCon(),lstempleados.getLempleados());
    lstusuario.insertarUsuario(con.getCon(),lstusuario.getLusuario());

    this.dispose();
    MenuPrincipal men = new MenuPrincipal(sesion);
    }

    if(ev.getSource() == jbIngresar){
    ObjetoEmpleados objinsertar = new ObjetoEmpleados();
    ObjetoUsuario objinsertar1 = new ObjetoUsuario();

    if(jtIde.getText().equals(“”)&&jtNom.getText().equals(“”)&&jtApe.getText().equals(“”)&& jtNumTel.getText().equals(“”) && jtcodusu.getText().equals(“”) && jtusu.getText().equals(“”) && jtcont.getText().equals(“”) && jtCodPer.getText().equals(“”) ){
    JOptionPane.showMessageDialog(null,”Por favor ingrese los datos.”);
    }else{

    ////////////////////////// validacion de campos obligatorios////////////////////
    if(jtIde.getText().equals(“”)){
    JOptionPane.showMessageDialog(null,”Por favor ingrese el número de Identificación.”);
    return;
    }
    if(jtNom.getText().equals(“”)){
    JOptionPane.showMessageDialog(null,”Por favor ingrese los nombre del empleado.”);
    return;
    }
    if(jtApe.getText().equals(“”)){
    JOptionPane.showMessageDialog(null,”Por favor ingrese los apellidos del empleado.”);
    return;
    }

    if( jtNumTel.getText().equals(“”)){
    JOptionPane.showMessageDialog(null,”Por favor ingrese el numero telefonico.”);
    return;
    }

    if( jtcodusu.getText().equals(“”) ){
    JOptionPane.showMessageDialog(null,”Por favor ingrese el codigo del empleado.”);
    return;
    }
    if(jtusu.getText().equals(“”) ){
    JOptionPane.showMessageDialog(null,”Por favor ingrese el nombre de usuario.”);
    return;
    }
    if(jtcont.getText().equals(“”)){
    JOptionPane.showMessageDialog(null,”Por favor ingrese la contraseña del empleado.”);
    return;
    }
    if(jtCodPer.getText().equals(“”)){
    JOptionPane.showMessageDialog(null,”Por favor ingrese el codigo de perfil del empleado.”);
    return;
    }

    ///////////////////////////// validacion de tipo de dato //////////////////////////////

    if(jtIde.getText().matches(“[a-zA-Z]+$”)){
    JOptionPane.showMessageDialog(null,”Digite sólo números en el campo identificacion del empleado.”);
    }
    if(jtFecNac.getText().matches(“[a-zA-Z]+$”)){
    JOptionPane.showMessageDialog(null,”Digite sólo números en el campo fecha de nacimiento.”);
    }
    if(jtNumTel.getText().matches(“[a-zA-Z]+$”)){
    JOptionPane.showMessageDialog(null,”Digite sólo números en el campo numero telefonico.”);
    }
    if(jtNumCel.getText().matches(“[a-zA-Z]+$”)){
    JOptionPane.showMessageDialog(null,”Digite sólo números en el campo numero de celular.”);
    }
    if(jtcodusu.getText().matches(“[a-zA-Z]+$”)){
    JOptionPane.showMessageDialog(null,”Digite sólo números en el campo codigo del empleado.”);
    }
    if(jtCodPer.getText().matches(“[a-zA-Z]+$”)){
    JOptionPane.showMessageDialog(null,”Digite sólo números en el campo codigo del perfil del empleado.”);
    }

    /////////////////////////// validacion de cantidad de caracteres////////////////////////////////////

    }
    objinsertar.setIdentificacion(Long.parseLong(jtIde.getText()));
    objinsertar.setNombres(jtNom.getText());
    objinsertar.setApellidos(jtApe.getText());
    if( jrbFem.isSelected() ){
    objinsertar.setGenero(“Femenino”);
    }
    if( jrbMas.isSelected() ){
    objinsertar.setGenero(“Masculino”);
    }
    objinsertar.setFechanacimiento(jtFecNac.getText());
    objinsertar.setCorreoelectronico(jtCorEle.getText());
    objinsertar.setDireccionresidencia(jtDirRes.getText());
    objinsertar.setNumerotelefonico(Integer.parseInt(jtNumTel.getText()));
    objinsertar.setNumerocelular(Integer.parseInt(jtNumCel.getText()));
    objinsertar.setCargo(jcbCar.getSelectedItem().toString());
    objinsertar.setFondopensiones(jtFonPen.getText());
    objinsertar.setEps(jtEps.getText());

    if(cbxestado.getSelectedIndex() == 0){
    objinsertar.setEstado(0);
    }
    if(cbxestado.getSelectedIndex() == 1){
    objinsertar.setEstado(1);
    }
    objinsertar1.setCodigousu(Long.parseLong(jtcodusu.getText()));
    objinsertar1.setNombreusu(jtusu.getText());
    objinsertar1.setContrasena(jtcont.getText());
    objinsertar.setCodperfil(Integer.parseInt(jtCodPer.getText()));

    Conexion con = new Conexion();
    boolean result = (lstempleados.llenarLista(objinsertar));
    boolean result1 = (lstusuario.llenarLista(objinsertar1));
    if((result&&result1)==false){
    JOptionPane.showMessageDialog(this,”Error guardando el empleado.”);
    }else{
    Limpiar();
    JOptionPane.showMessageDialog(this,”Cuenta almacenada.”);
    }
    }

  16. alex says:

    hola buen día espero q me ayudes a resolver mi duda es que estoy haciendo un algoritmo de Cifrado? y pues soy algo nuevo en esto y necesito ayuda pro que el “arr” no me esta reconociendo en java te dejo el codigo para ver si tengo algo mal en esto:
    //CODIGO

    public class Cifrados {
    String sifrados;
    String arr[];
    String mensaje;
    String cripto;
    public String Cifrado(String mensaje){
    //Convertimos el mensaje a arreglo de caracteres
    char arr[] = mensaje.toCharArray(); // no me esta reconociendo el arr en java?
    String cripto = “”;//Cadena que contendrá el criptograma
    mensaje = “”;
    /*Del arreglo reescribimos el mensaje
    * sin los espacios
    */
    for (int i = 0; i < arr.length; i++){
    if(arr[i] != ' '){
    mensaje+= arr[i];
    }
    }
    //Vaciamos el arreglo
    arr = null;
    //Convertimos de nuevo el mensaje en arreglo
    arr = mensaje.toCharArray();
    //Obtenemos el tamaño del arreglo
    int count = arr.length; //Contador auxiliar
    /*Formamos la cadena cripto con el ciclo
    * while y la integramos del último elemento del
    * arreglo al primero
    */
    while(count != 0){
    cripto+= (arr[count - 1]);
    count = count – 1;
    }
    //Retornamos la cadena cripto
    return ("El resultado es:\n"+cripto);
    }

    }

    //desde ya te agradesco por tu pronta respuesta

  17. lopsan says:

    necesito un programa para ordenar 10 numeros de menor a mayor con for

    • ismael says:

      espero te sirva

      //esto lo pones en cuaqluier clase que te generes
      public static void main(String[] args) {

      System.out.println(“Este es un programa prueba para ordenar un array de mayor a menor lo snumero”);
      //primero agregamos el array de 10
      int array1[];
      array1 = new int[10];

      int i=0;
      while (i<10)
      {
      array1[i]=(int) (Math.random()*99+1);
      System.out.println(""+array1[i]);
      i++;
      }
      i=0;
      int a,b;
      while (ia)
      {
      array1[i]=b;
      array1[i+1]=a;
      i=0;
      }else
      {
      i++;
      }
      }
      i=0;
      while (i<10)
      {
      System.out.println("Ordenado \t"+(i+1)+"\t "+array1[i]);
      i++;
      }
      }
      //termina el codigo

      con eso te deberia funcionar sin problemas

  18. jose angel says:

    nopues q chido

  19. alejandra says:

    Hola soy nueva en Java y tengo la siguiente duda, tengo dos metodos consulta y pago de un WEbservice de otra empresa, el metodo de consulta ya lo hice sin embargo me trnque el el pago ya que me pide cque envie como repsuetsa dos arrays; estoy usando el eclipse indigo.
    //metodo de consulta

    public MensajeriaUpb consultaAlumno(MensajeriaUpb mb) throws AxisFault, RemoteException, NullPointerException, MalformedURLException {
    logger.info(“Consulta Alumno”);

    WsUpbServerBindingStub wsb = null;
    try {
    wsb = this.getConnection();

    logger.info(“Codigo del Estudiante: {}”, mb.getCodEstudiante());
    WsItems[] items = wsb.getItems(mb.getCodEstudiante());
    logger.debug(“Longitud: {}”, items.length);

    for (int i = 0; i < items.length; i++){
    logger.info("codigo de Item: {}", items[i].getCodItem());
    logger.info("nombre item: {}", items[i].getNomItem());
    logger.info("salto total: {}", items[i].getSaldoTotal());
    logger.info("monto pago: {}", items[i].getMontoPago());
    }
    }catch (RemoteException e ){
    mb.setCodRespuesta("99");
    mb.setMensajeRespuesta("NO APROBADO");
    logger.error("RemoteException: {} StackTrace : {}", e.getMessage(), e.getStackTrace());
    e.printStackTrace();
    }

    return mb;

    }
    Hasta ahí todo bien
    //metodo de pago

    public MensajeriaUpb pagoDeuda (MensajeriaUpb mb) {
    logger.info("Pago cuota");
    //WSItems[] items = null;
    WsUpbServerBindingStub wsb = null;
    try {
    wsb = this.getConnection();

    logger.info("Codigo del Estudiante: {}", mb.getCodEstudiante());
    logger.info("Nit: {}", mb.getNit());
    logger.info("Nombre Factura: {}", mb.getNombreFactura());
    logger.info("Total: {}", mb.getMonto());

    WsDatos datos = wsb.setTransaccion(datos, items);
    //logger.debug("Longitud: {}", items.length);

    return null;

    }

    }
    EN el ultimo metodo es el problema, ahi en lo que dice wsb.setTransaccion(datos, items);

    Tengo que enviar dos Arrays bajo la siguiente forma:

    MÉTODO setTransaccion
    Campo Tipo Detalle
    Parámetros de entrada
    Datos
    codEstudiante String El codigo de identificacion del estudiante
    nit String Carnet o NIT de la persona que solicita la compra
    nombreFactura String Nombre a facturar, en caso de credito fiscal mayor a cero
    total Double Monto total de la transaccion para el pago (Mostrara en ventanilla para pagar)
    Items
    codItem[] Integer Codigo del Item a pagar
    montoPago[] Double Monto total
    Parametros de salida
    idTransaccion string ID de la transacción único

    al parecer lo que es “Datos” si me reconoce pero ítems en Items me sale el siguiente error, items cannot be resolved to a variable.
    No sé si arme bien el array datos o no sé cómo puedo enviar la respuesta que el WSDL espera.

  20. Dulce says:

    Hola Jorge,
    tengo un arreglo de String, y quisiera sabes como puedo agregar sin saber en que posicion voy.. sin tener que hacer el arreglo[0]=”algo”;
    algo mas como arreglo.add(“algo);

    esto se puede???
    Podrías explicarme??
    gracias!!

  21. Josee says:

    Holaa quisiera hacer un programa que simule un juego llamado 21 (de cartas) podrias ayudarme porfavor??

  22. José Castillo says:

    Muchas gracias, muy buenos tutoriales, necesito aprender a programar urgentemente para desarrollar un software, si pudieras mandar a mi correo tutoriales sobre java Orientado hacia la web sería fantástico muchas gracias y bendiciones :D

  23. muchas gracias broth quiero ser como tu como le haces…

  24. AlbertoG says:

    Gracias por el post.
    Me ha aclarado un par de dudas.

    Saludos desde España.

  25. Francisco says:

    Muy bueno… Muchas gracias.

  26. noe says:

    queria ver si me pueden ayudar a como hacer un programa que simule el cobro de un cafe internet oce que si esta de 1 a 15 minuto son 3 pesos y si esta de 15 a 30 minutos son 5 pesos y si esta de 30 a 60 segundo son 10 pesos por favor ayudenme

  27. hola gracias por la publicacion la verdad estoy mal en programacion actualmete estudio la carrera de ingenieria necesito ayuda en esa materia la verdad este tutorial fue de gran apoyo pero necesito mas tutoriales mi correo es chivi_281990@hotmail.com necesito un ejerccio del metodo de burbuja con enteros y caracteres un vector de (10)(2,3,4,5,6,8,8,8,9,9)llamado maestro y otro vector llamado esclavo con (10)caracteres(j,7,b,c,a,c,l,b,a,-) y que utilize un randow.

  28. EVELYN says:

    LA VERDAD A MI SE ME DIFICULTA MUCHO LA PROGRAMACIÓN Y ESTOY ESTUDIANDO PARA TAL CARRERA PERO CREME QUE EL POST QUE SUBISTE ME FASINO Y MAS POR QUE LE ENTENDI MUY BIEN A LO QUE SON LOS ARREGLOS,GRACIAS POR LA INFORMACIÓN Y GRACIAS POR ESE VIDEO.. HOY APRENDI ALGO NUEVO!

    POSDATA: OJALA ME AGREGUES A LA PAGINA EN FACE. O ME MANDES CORREO CON TUTORIALES NUEVOS POR QUE EN VERDAD NECESITO APRENDER A PROGRAMAR.

Leave a Reply

Your email address will not be published. Required fields are marked *