chaine d'entier "csv-style" -> int[] - Java - Programmation
Marsh Posté le 09-05-2003 à 19:30:20
the real moins moins a écrit : Yop, |
passe par un vecteur alors ...
apres t utilise la methode copyInto...
Marsh Posté le 09-05-2003 à 19:34:09
veryfree a écrit : |
Si l'arraylist me fait un peu chier c'est surtout pask'on y fout des Object donc Integer dans mon cas et que ça me broute de devoir les instancier et faire des intValue dessus apres. c pas avec un vector que ça va changer
et pis pour parser le bordel. là j'utilise un StringTokenizer parce que j'ai plus de neurones, mais je me dit que c'est surement pas le plus leger dans mon cas (qui est hyper simple)
Marsh Posté le 09-05-2003 à 19:38:41
Bon en fait là je fais
Code :
|
c'est tres court et clair, mais ça me parait hyper lourdingue niveau perfs....
qqun a mieux?
Marsh Posté le 10-05-2003 à 01:02:32
cte vieux bide
meme benou est pas passé
m'en fous je l'upperai lundi matin
Marsh Posté le 10-05-2003 à 11:54:30
up
edit: tu m'as meme pas demandé mon avis
Edit2: je vois mal comment tu pourrais faire autrement hein (enfin niveau perf)
Marsh Posté le 10-05-2003 à 12:24:42
the real moins moins a écrit :
|
bha c'est sur que là tu fais 2 parcour de la chaine, c'est pas top
mais bon, je rois pas qu'on puisse faire beaucoup mieux.
Par contre tu devrais filler le ';' comme separateur pour le String Tokenizer. Ca diminuera le nombre de test qu'il devra faire : new StringTokenizer(taChaine, ";" );
Et puis pour revenir sur l'idée du Vector, autant faire une LinkedList : ce serait plus performant.
Marsh Posté le 10-05-2003 à 12:25:03
DarkLord a écrit : |
et on peut le connaître ?
Marsh Posté le 10-05-2003 à 12:26:30
benou a écrit : |
bin en gros le tien sauf que j'ai pas mis l'accent sur le ; comme séparateur
mais à mon avis il l'a mit mais il l'a oublié dans le code de son post
Marsh Posté le 10-05-2003 à 13:40:57
DarkLord a écrit : up |
t'étais parti
et niveau perf, bah si tu vois comment fonctionne un string tokenizer, c pas le plus leger pour juste parser un truc avec des entiers séparés par un char
Marsh Posté le 10-05-2003 à 13:42:32
benou a écrit : |
euh voui en fait j'utilise ce constructeur, j'ai mal recopié (spa facile de faire un copier/coller entre 2 machines )
et pour la LinkedList, ça serait mieux qu'un ArrayList? J'y pense jamais moi à ces bêtes là
merci quand meme
y'a donc personne qui veut faire du parsing à la sauvage char par char?
Marsh Posté le 10-05-2003 à 13:42:57
DarkLord a écrit : |
comment tu me connais trop bien
Marsh Posté le 10-05-2003 à 14:32:54
the real moins moins a écrit : y'a donc personne qui veut faire du parsing à la sauvage char par char? |
allez, cadeau :
Code :
|
ca doit pas être loin d'être optimal ...
Marsh Posté le 10-05-2003 à 14:51:05
bon, et si Elem stockait directement un int au lieu d'un Object?
(parce qu'en fait si je me retrouve avec une IntLinkedList ou un int[] pour moi ça revient au meme:D)
Marsh Posté le 10-05-2003 à 14:51:38
ReplyMarsh Posté le 10-05-2003 à 14:54:33
magnifique
Code :
|
Marsh Posté le 10-05-2003 à 14:58:57
++Taz a écrit : magnifique
|
bah euh quoi?
Marsh Posté le 10-05-2003 à 15:18:43
the real moins moins a écrit : bah euh quoi? |
y a des gens qui aiment pas les while(true) ...
quand c'est simple, j'évite moi aussi, mais quand je dois me faire chier à dupliquer du code (à mettre avant le while) ou triturer mon algo et le rendre imcompréhensible, ben je préfère faire un bête while (true) ...
Marsh Posté le 10-05-2003 à 15:20:10
the real moins moins a écrit : |
ca je pouvais pas le savoir
vas-y, mon source est free !
Marsh Posté le 10-05-2003 à 15:21:30
benou a écrit : |
Ya pas do {} while en java ?
Marsh Posté le 10-05-2003 à 15:25:05
Tetragrammaton IHVH a écrit : |
si mais ca convenait pas ...
edit : enfin ca aurait pu allr, mais je me tapais quand même le test du -1 => snul !
Marsh Posté le 10-05-2003 à 15:31:51
benou a écrit : |
C'est clair, rien de tel que la programmation "spaghetti"
Marsh Posté le 10-05-2003 à 15:32:23
euh ouais t'aurais betement pu faire
while (end!=-1) {
...
}
en fait
edit: ha ben non
Marsh Posté le 10-05-2003 à 15:54:12
Tetragrammaton IHVH a écrit : |
Marsh Posté le 10-05-2003 à 16:24:38
puisque vous etes d humeur généreuse y en a pas un qui a déja créé une fonction qui convertis des secondes en
heure minute seconde ?
Marsh Posté le 10-05-2003 à 16:29:44
Calendar c = Calendar.getInstance;
c.setTimeInMillis(secondsTotal*1000);
int hours = c.get(Calendar.HOUR_OF_DAY);
int minutes = c.get(CALENDAR.MINUTE);
int secondes = c.get(CALENDAR.SECONDS);
qqch comme ça
Marsh Posté le 10-05-2003 à 16:30:49
the real moins moins a écrit : Calendar c = Calendar.getInstance; |
non non
quelque chose qui te convertis : 70 sec en 1 min et 10 sec
Marsh Posté le 10-05-2003 à 16:32:53
ben c'est exactement ce que ca fait, si tu rajoutes () à Calendar.getInstance bien sûr
Marsh Posté le 10-05-2003 à 16:43:18
benou a écrit : ben c'est exactement ce que ca fait, si tu rajoutes () à Calendar.getInstance bien sûr |
Marsh Posté le 10-05-2003 à 16:51:53
si c etait la seule faute
Marsh Posté le 10-05-2003 à 16:52:46
veryfree a écrit : |
je t'ai sorti ça de tête hein, sans doc ni éditeur ni compilo
Marsh Posté le 10-05-2003 à 16:54:38
the real moins moins a écrit : |
mais je sais arrete de monter sur tes grand cheveaux
jt aime bien c pour ca que je te provoque
Marsh Posté le 10-05-2003 à 16:56:13
veryfree a écrit : |
Marsh Posté le 10-05-2003 à 17:00:05
la methode : setTimeInMillis(secondsTotal*1000); a un acces protected
Marsh Posté le 10-05-2003 à 17:03:00
de tête, tu dois avoir un setTime() qui prend une Date en paramêtre et c'est date tu peux la contruire à partir d'un long (ton nombre de secondes)
Marsh Posté le 10-05-2003 à 17:04:24
tout à fait
et y'a pas setTimeInMilliseconds?
ou bien tu peux ptet meme faire set(Calendar.SECONDS, 307072)
Marsh Posté le 10-05-2003 à 17:11:59
et arrete de pourrir mon topic d'abord
Marsh Posté le 10-05-2003 à 17:15:23
the real moins moins a écrit : |
nan, c'est pas une bonne idée parce que de base le Calendar est instancié à la date courante => tu ne changeras que le champ secondes ...
Marsh Posté le 10-05-2003 à 17:22:17
benou a écrit : de tête, tu dois avoir un setTime() qui prend une Date en paramêtre et c'est date tu peux la contruire à partir d'un long (ton nombre de secondes) |
j ai de droles de resultats
Code :
|
avec 70 comme argument ca retourne 1:0:0
edit: avec 70 000 ca retourne 1:1:10 << ya juste le 1er "1" qui cloche
Marsh Posté le 09-05-2003 à 19:14:16
Yop,
J'ai une chaine du genre "123;12;-1;45;46;38;34;" (etc), que je reçois en fait sous forme de byte[] (si je fais new String(byteArr), j'obtiens la chaine que je viens de décrire)
Je voudrais en fait un tableau d'int.
Je ne connais pas par avance le nombre d'élements. (tout ce que je sais c'est qu'il est supposé etre pair ce nombre)
A votre avis, la meilleure solution?
(ça me fait chier de passer par un ArrayList et de voir y insérer des Integer - les instanciers puis repasser par des intValue partout apres - mais un int[] n'est pas resizable....)
Je vois plusieurs façons, mais je laisse votre créativité voguer; comment feriez-vous?
---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?