Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: dferna en 06 de Abril 2017, 14:31

Título: error: no suitable method found for cannot find symbol method is not CU00675B
Publicado por: dferna en 06 de Abril 2017, 14:31
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;
Título: Re:Resolución ejercicio Convertir array en ArrayList CU00675B
Publicado por: pedro,, 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
Título: Re:Java. Copiar y comparar arrays. Conceptos de identidad e igualdad. CU00675B
Publicado por: dferna en 08 de Abril 2017, 21:17
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)
Título: Re:Java. Copiar y comparar arrays. Conceptos de identidad e igualdad. CU00675B
Publicado por: Luis Fdo Carvajal en 11 de Abril 2017, 16:30
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
Título: Re:Java. Copiar y comparar arrays. Conceptos de identidad e igualdad. CU00675B
Publicado por: pedro,, en 11 de Abril 2017, 19:38
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