Aller au contenu

Problème pour créé une variable avec indice


blubsy

Recommended Posts

Bonjour, je suis developpeur php et je cherche encore comment fonctionne certain système sous android.

Etant bloqué depuis 2 jours sur une bétise, je viens vous demandé un peu d'aide.

En php je peut facilement créé une variable avec indice :

$XX = 5;

$mesBateaux[$XX] = "bateau123";

Et plus tard récupéré ma variable.

Mais sous android/java je suis totalement bloqué.

Si je met

String[] mesBateaux= null;

mesBateaux[123] = "bateau123";

Je n'ai aucune erreur référencer sous eclipse mais dans mes logs je me retrouve avec une erreur de type :

Caused by: java.lang.NullPointerException

Merci par avance pour votre aide car cette petite erreur me bloque complètement...

Bonne journée

Lien vers le commentaire
Partager sur d’autres sites

Faut chercher "déclarer un tableau en java" !

Tu aurais comme réponse :

String[] mesBateaux= new String[125];
mesBateaux[123] = "bateau123";

En java t'es obliger de déclarer ton objet en l'instanciant. PHP le fait pour toi à la volée ! Là non :)

Donc tu instancies ton tableau en disant que tu veux un tableau de 125 String !

Attention si tu vas à plus de 125 tu vas avoir une erreur de sortie de tableau :)

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ton aide.

Ok je comprend mieux, mais voilà dans ma valeur indice j'ai un code à 6 chiffre de type "456654" alors comment je peut faire car la je devrait mettre :

String[] mesBateaux= new String[999999];
mesBateaux[123] = "bateau123";

Ce qui d'après ce que tu dit ne peut pas fonctionné.

MErci par avance

Lien vers le commentaire
Partager sur d’autres sites

Tu indique que si j'ai une valeur de + de 125 j'aurais une erreur.

Hors mes valeur sont comprise entre 100000 et 999999.

Alors cela ne doit pas fonctionné car valeur > à 125.

String[] mesBateaux= new String[999999];
mesBateaux[123456] = "bateau123";

Lien vers le commentaire
Partager sur d’autres sites

Oula attention,

tu mélanges 2 choses, l'indice dans ton tableau et un système de clé/valeur.

Soit tu as un tableau avec un nombre fini ou non d'argument (on peu toujours agrandir la taille dun tableau) et la tu dit : donne moi le premier, le second élement, etc.

Ou alors c'est un système de clé/valeur et dans ce cas tu utilise une hashmap (ou une hashTable).

Hashtable listBateau = new Hashtable();
listBateau.put(123456, "bateau123");

Tu récupères ensuite ta data avec la méthode get

String bateau = listBateau.get(123456)

J'ai vraiment l'impression que ton index à plus l'air d'un identifiant et même en PHP je doute que ce soit vraiment une best practice que de passer par un tableau.

Lien vers le commentaire
Partager sur d’autres sites

a mon avis je n'utilise pas le bon système (variable).

Car en faite je n'ai pas vraiment besoin d'un tableau mais d'une variable à indice.

Bon apparament cela marche même avec 9999999 valeur mais bon je vais cherché pour avoir quelques chose de plus propre.

Merci en tous cas pour ton aide.

Lien vers le commentaire
Partager sur d’autres sites

Dsl je me suis formé par moi même j'ai donc un peu de mal avec les bons therme.

une variable avec un indice :

maVariable[monIndice] = Valeur;

En gros j'ai un code qui à une valeur exemple :

var123456 = "06451245";

var123754 = "06458454";

var445654 = "12454585";

Tous doit être en automatique car la variable varXXXXXX peut avoir n'importe quelle nom.

J'utilise donc une variable avec indice : var[123456] et je lui donne la valeur que je veux 06451245.

Afin de pouvoir la récupéré plus tard dans mon traitement..

Bon j'espère avoir été un peu plus clair lol...

Lien vers le commentaire
Partager sur d’autres sites

argghh, je crois comprendre ce que tu veux, mais y'a un problème.

Ce que tu appelle variable avec indice c'est un tableau. Il faut le voire comme un livre ou ton 'indice est le numéro de page.

Tu vois à ce moment la qu'il y a un problème dans ton utilisation du tabbleau tu te trimballe toute l'encyclopédie universalys quand tu n'aurait besoin que d'un post-it.

Tu te sert de ton tableau pour stocker tes variables et les retrouver quand tu en as besoin. (Comme je te le disais je pense que la Hashtable répond à ton besoin)

Pour info, le nom des variables en java on s'en fou royalement le nom n'est absolument pas représentatif, et on peux avoir 3 variables avec des noms différents qui pointe vers le même objet ou avoir une même variable qui va changé de nom à chaque méthode ou elle est utilisée.

Ensuite je penses que tu résonnes en script séquentiel et non pas en objet, ce qui t’amène des problèmes de conception.

Il faudrait en voir plus sur ton programme pour réellement t'aider à aligner tout ça .

Mais à vu de nez regardes du coté des attributs static et du passage de paramètre dans les méthodes de traitement.

Edit : je pense qu'il te faudrait aussi un vernis objet par la dessus mais ça commence à faire bcp ;)

Lien vers le commentaire
Partager sur d’autres sites

A priori tu a tout a fait raison je viens de la programmation php et je découvre plus ou moins le monde des objets.

Je vais donc prendre tes conseils et me renseigné pour comprendre ce que je fait et comment le faire au mieux.

JEete remercie bc pour ton aide qui m'éclaire un peu et me donne la bonne direction à suivre.

Merci beaucoup

blubsy

Lien vers le commentaire
Partager sur d’autres sites

C'est la preuve que c'est un vrai développeur qui l'a fait car c'est une misère graphique.

Plus sérieusement ce site existe depuis 10 ans et l'auteur le mets à jour régulièrement avec toutes les nouveautés qui arrivent dans Java.

On a donc un site avec 10 de retard graphiquement mais avec un contenu à jour et c'est ça le principal.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...