Java - El metodo add(Integer)

 
Vista:
sin imagen de perfil

El metodo add(Integer)

Publicado por Mika (5 intervenciones) el 15/01/2023 13:42:39
Tengo el siguiente código y me pone el siguiente error: The method add(Integer) in the type ArrayList<Integer> is not applicable for the arguments (String)

¿Alguien puede explicarme porque?

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Act2 {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
ArrayList<Integer> clase = new ArrayList<Integer>();
//String valor = sc.nextLine();

System.out.println("Introduce los nombres: ");
String valor = ""; // char valor[10] = "";

while(true) {
valor = sc.nextLine(); // scanf("%s", &valor);
if("fin".equalsIgnoreCase(valor)){
break;
}
clase.add(valor);
}

System.out.println(clase);

Collections.sort(clase);

for(int i=0; i<clase.size();i++)
System.out.print(clase.get(i) + "");

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 26
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

El metodo add(Integer)

Publicado por antonio (32 intervenciones) el 15/01/2023 14:53:33
Hola buenas porque esta leyendo lo que introduces como string en vez de un entero, por lo que deberías primero comprobar que lo introducido es un entero y después pasar lo introducido a int.
Este seria un ejemplo sencillo para una prueba:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
 
 
public class Act2{
 
    public static boolean isNumeric(String cadena) {
 
        boolean resultado;
 
        try {
            Integer.parseInt(cadena);
            resultado = true;
        } catch (NumberFormatException excepcion) {
            resultado = false;
        }
 
        return resultado;
    }
 
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> clase = new ArrayList<Integer>();
        //String valor = sc.nextLine();
 
        System.out.println("Introduce el numero: ");
        String valor = "";
        boolean salida=false;
        while(!salida) {
            valor = sc.nextLine();
            salida=isNumeric(valor);
 
        }
        int numero= Integer.parseInt(valor);
        System.out.println("Numero: " + numero);
 
        clase.add(numero);
 
 
        Collections.sort(clase);
 
        for(int i=0; i<clase.size();i++)
            System.out.print(clase.get(i) + "");
        }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

El metodo add(Integer)

Publicado por Mika (5 intervenciones) el 15/01/2023 21:03:34
Hola, buenas, este ejercicio es para ordenar una lista de nombres que el usuario introduzca. El ejercicio le copie tal cual de mi profesor (pero ya veo que no porque me da fallo), la verdad estoy comenzando y no entiendo tu solución ¿No hay una forma más sencilla de hacerlo? Todavía no se que es boolean. ¿Por cierto lo de encima del main es una función? Tampoco sé que eso de try.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

El metodo add(Integer)

Publicado por Kabuto (1381 intervenciones) el 15/01/2023 23:47:52
Si se pretende ordenar nombres, el error está en que el ArrayList se ha declarado para la clase Integer, es decir, para contener números en lugar de nombres:
1
ArrayList<Integer> clase = new ArrayList<Integer>();

Para albergar nombres, ha de ser de clase String
1
ArrayList<String> clase = new ArrayList<String>();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

El metodo add(Integer)

Publicado por Mika (5 intervenciones) el 22/01/2023 18:17:48
muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar