2013-01-20 3 views
0
public static void main(String args[]) 
{ 
    double arr[] = {1,-6.3,9000,67.009,1.1,0.0,-456,6,23,-451.88}; 

    ArrayList<Integer> List = new ArrayList<Integer>(); 

    List.add(1); 
    List.add((int) -6.3); 
    List.add(9000); 
    List.add((int) 67.009); 
    List.add((int)1.1); 
    List.add((int)0.0); 
    List.add(-456); 
    List.add(6); 
    List.add(23); 
    List.add((int)451.88); 
} 

public static int ArrayListMax(ArrayList List) 
{ 

    for (int i=0; i<List.size(); ++i) 
    { 
     System.out.println(List.get(i)); 
    } 

L'erreur est:'Cette méthode doit renvoyer un résultat de type int' Java?

public static int ArrayListMax(ArrayList List) 

Ceci est probablement une erreur très nooby, mais je suis nouveau Java alors pardonnez-moi.

Une aide s'il vous plaît?

Merci.

EDIT:

Je veux la méthode ArrayListMax d'imprimer la taille de la liste!

+0

Déclarez la méthode comme suit: public static void ArrayListMax (ArrayList List) ', car vous ne renvoyez rien. – nhahtdh

+0

Vous ne montrez pas votre code complet de 'ArrayListMax'. Vous avez probablement écrit une mauvaise déclaration ou vous l'avez manquée. – shuangwhywhy

Répondre

1

En supposant que vous essayez d'obtenir la valeur maximale dans votre List dans la méthode arrayListMax, vous devez retourner un entier conformément à votre signature de méthode, l'erreur vous dit

This method must return a result of type int 

au lieu d'imprimer toutes les valeurs de la liste, vous pouvez faire:

public static int arrayListMax(List<Integer> List) { 
    return Collections.max(list); 
} 

Utilisez Java Naming Conventions. La méthode & commence par une lettre minuscule. L'utilisation de cette approche permet d'éviter la confusion entre les instances & types (par exemple dans le cas de List dans la méthode main).

0

Le problème est dans cette méthode:

public static int ArrayListMax(ArrayList List) 
{ 

    for (int i=0; i<List.size(); ++i) 
    { 
     System.out.println(List.get(i)); 
    } 
} 

Vous ne reviennent pas de cette méthode, vous devez retourner de type int pour résoudre cette erreur. Puisque vous avez spécifié int comme type de retour.

0

Vous avez créé la fonction de retour d'un résultat

public static int ArrayListMax(ArrayList List) 

Afin de supprimer votre problème, si vous ne devez pas retourner quoi que ce soit, écrire

public static void ArrayListMax(ArrayList List) 

void signifie que vous ne voulez pas la méthode renvoie un résultat.

1

Soit ajouter une déclaration return à votre méthode ArrayListMax() qui retourne un int ou changer la signature de la méthode public static int-public static void. Et ajoutez une fermeture } à la méthode aussi.

De même, vous ne devez pas utiliser List comme nom pour l'argument de cette méthode car c'est le nom d'une interface que vous importez réellement dans ce code. La convention dans java est pour les noms de variables et noms de méthodes commençant par une lettre minuscule (cas de chameau) et les noms de classe commençant par une lettre majuscule (cas pascal).

0

Si vous imprimez simplement des valeurs, la signature doit être vide public ArrayListMax (liste ArrayList).

0

Première, vous n'êtes pas quoi que ce soit avec la méthode retournerez ArrayListMax même si vous avez défini le type de retun à int. Renvoyez void lorsque vous imprimez directement à partir de la liste.

Deuxièmement, même si vous définissez le type de retour correct à la méthode ArrayListMax, vous aurez toujours besoin d'appeler cette méthode dans la méthode main comme ci-dessous:

public static void main(String args[]) 
{ 
    double arr[] = {1,-6.3,9000,67.009,1.1,0.0,-456,6,23,-451.88}; 

    ArrayList<Integer> List = new ArrayList<Integer>(); 

    List.add(1); 
    List.add((int) -6.3); 
    List.add(9000); 
    List.add((int) 67.009); 
    List.add((int)1.1); 
    List.add((int)0.0); 
    List.add(-456); 
    List.add(6); 
    List.add(23); 
    List.add((int)451.88); 
    YourClassNameInWhichMethodIs.ArrayListMax(List); 
} 
0

Vous devez utiliser une déclaration de retour comme Methode renvoie une valeur de type int.

Questions connexes