blubsy Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 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 More sharing options...
Jorodan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 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 More sharing options...
blubsy Posté(e) 12 octobre 2010 Auteur Share Posté(e) 12 octobre 2010 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 More sharing options...
Jorodan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 Pas compris :S Lien vers le commentaire Partager sur d’autres sites More sharing options...
blubsy Posté(e) 12 octobre 2010 Auteur Share Posté(e) 12 octobre 2010 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 More sharing options...
Jorodan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 Tu as donc deux solutions : 1) utiliser un tableau déclaré à 1000000 élements ! 2) Utiliser l'objet ArrayList Mais là je te renvoie vers des forums java qui auront des réponses plus pertinentes sur le choix entre l'un et l'autre ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
moritan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 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 More sharing options...
blubsy Posté(e) 12 octobre 2010 Auteur Share Posté(e) 12 octobre 2010 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 More sharing options...
moritan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 J'arrive pas à comprendre ton idée de variable à indice qu'entend tu par là ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
blubsy Posté(e) 12 octobre 2010 Auteur Share Posté(e) 12 octobre 2010 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 More sharing options...
moritan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 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 More sharing options...
Jorodan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 Ben c'est le principe du "tableau de hashage". Cherche ça sur google ;) (wikipédia par exemple sera une bonne source de réponse je pense). Et l'objet HashTable évoqué plus tot sera son utilisation en Java :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
blubsy Posté(e) 12 octobre 2010 Auteur Share Posté(e) 12 octobre 2010 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 More sharing options...
Jorodan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 Le petit message pas sympa en fin : TAIN STOP LES FAUTES :'( Relis toi :'( Pardon j'ai pas pu m'en empécher !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
moritan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 La bible pour les développeurs Java débutant c'est ce site http://www.jmdoudoux.fr/java/dej/titre.htm. Il aborde tous les sujets possibles et imaginables sur le dev en Java et donne toutes les best practice. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jorodan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 Pwah ca pique les yeux par contre... Lien vers le commentaire Partager sur d’autres sites More sharing options...
blubsy Posté(e) 12 octobre 2010 Auteur Share Posté(e) 12 octobre 2010 j'aime ce qui pique lol aller zou plus qu'a me documenté... Lien vers le commentaire Partager sur d’autres sites More sharing options...
moritan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 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 More sharing options...
Jorodan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 j'aime ce qui pique lolaller zou plus qu'a me documenté... Comme ton orthographe :P (je vais pas te lacher ! :P) On a donc un site avec 10 de retard graphiquement mais avec un contenu à jour et c'est ça le principal. C'est clair ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
moritan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 Et la un doute m'étreint, les djeunz sur skyblog seraient donc des développeurs de génie ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jorodan Posté(e) 12 octobre 2010 Share Posté(e) 12 octobre 2010 Non parce que c'est bien connu, il n'y a AUCUN contenu sur skyblog!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
eephyne Posté(e) 13 octobre 2010 Share Posté(e) 13 octobre 2010 un SparseArray sur android c'est mieux (en général) qu'une hashmap/table. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.