Autor Tema: error: no suitable method found for cannot find symbol method is not CU00675B  (Leído 3476 veces)

dferna

  • Sin experiencia
  • *
  • Mensajes: 25
    • Ver Perfil
Buenas  :D

Aquí dejo la resolución al ejercicio CU00675B del manual básico de programación Java con BlueJ sobre copiar el contenido de un array a un ArrayList

Código: [Seleccionar]
package aplicacion;

import java.util.ArrayList;

public class TestArray {

public static void main(String[] args) {

int[] miArray1 = { 2, -4, 3, -7 };
ArrayList<Integer> lista1 = new ArrayList<Integer>();

System.out.println("Contenido de miArray1(array): ");
for (int i = 0; i < miArray1.length; i++) {
System.out.println("miArray1[" + i + "]= " + miArray1[i] + ";");
}

// La única forma de hacerlo es ir recorriendo el array e ir añadiendo
// el valor de cada posicion a la lista de tipo ArrayList
for (int i = 0; i < miArray1.length; i++) {
lista1.add(miArray1[i]);
}

System.out.println("Resultado tras convertir array en ArrayList");
System.out.println("Contenido de lista1(ArrayList): ");
//Recorro la lista de tipo ArrayList e imprimo el valor de cada posición
int contador = 0;
for (Integer posicion : lista1) {

System.out.println("lista1 "+contador+"= " + posicion+ ";");
contador++;
}
}
}

Aquí dejo también una prueba de funcionamiento:
Citar
Contenido de miArray1(array):
miArray1[0]= 2;
miArray1[1]= -4;
miArray1[2]= 3;
miArray1[3]= -7;
Resultado tras convertir array en ArrayList
Contenido de lista1(ArrayList):
lista1 0= 2;
lista1 1= -4;
lista1 2= 3;
lista1 3= -7;
« Última modificación: 17 de Junio 2017, 13:43 por Alex Rodríguez »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Resolución ejercicio Convertir array en ArrayList CU00675B
« Respuesta #1 en: 08 de Abril 2017, 18:49 »
Buenas dferna.

El código está bien, por ahorrar algo de código, el primer for lo podrías haber aprovechado para ir insertando los valores del ArrayList.

Te faltaría responder a las dos preguntas que contiene el enunciado.

Saludos. ;D

dferna

  • Sin experiencia
  • *
  • Mensajes: 25
    • Ver Perfil
Hola pedro  ;)

Gracias por corregirlo, le he realizado los cambios que me as comentado y la pregunta olvide responderlas  ::) jeje.


Este es el código corregido:
Código: [Seleccionar]

package aplicacion;


import java.util.ArrayList;


public class TestArray {


   public static void main(String[] args) {


      int[] miArray1 = { 2, -4, 3, -7 };
      ArrayList<Integer> lista1 = new ArrayList<Integer>();


      System.out.println("Contenido de miArray1(array): ");
      for (int i = 0; i < miArray1.length; i++) {
         System.out.println("miArray1[" + i + "]= " + miArray1[i] + ";");
         lista1.add(miArray1);
      }


      System.out.println("Resultado tras convertir array en ArrayList");
      System.out.println("Contenido de lista1(ArrayList): ");
      //Recorro la lista de tipo ArrayList e imprimo el valor de cada posición
      int contador = 0;
      for (Integer posicion : lista1) {
         
         System.out.println("lista1 "+contador+"= " + posicion+ ";");
         contador++;
      }
   }
}



¿Que tipo de datos almacena el array? ¿Qué tipo de datos almacena el ArrayList?
Citar
El array contiene cuatro datos de tipo primitivo int.
El ArrayList contiene objetos de tipo Array con los datos que contiene el array de tipo primitivo int.

Saludos  8)

Luis Fdo Carvajal

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
El código no compila, sale el siguiente error:
error:
cannot find symbol
         lista1.add(miArray1);
  symbol:   method add(int[])
  location: variable lista1 of type int[]
1 error
-------------------------------------------------------------------------------
error: no suitable method found for add(int[])
         lista1.add(miArray1);
    method ArrayList.add(int,Integer) is not applicable
      (actual and formal argument lists differ in length)
    method ArrayList.add(Integer) is not applicable
      (actual argument int[] cannot be converted to Integer by method invocation conversion)
    method AbstractList.add(int,Integer) is not applicable
      (actual and formal argument lists differ in length)
    method AbstractList.add(Integer) is not applicable
      (actual argument int[] cannot be converted to Integer by method invocation conversion)
    method AbstractCollection.add(Integer) is not applicable
      (actual argument int[] cannot be converted to Integer by method invocation conversion)
1 error
------------------------------------------------------------------------------------


Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: java.util.ArrayList.add
   at TestArray.main(TestArray.java:29)
Java Result: 1

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas.

Esta línea:

Código: [Seleccionar]
lista1.add(miArray1);
debe de ir así:

Código: [Seleccionar]
lista1.add(miArray1[i]);
La respuestas que diste, dferna, son correctas.

Saludos.  ;D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".