OVH Cloud OVH Cloud

Concaténer 2 vecteurs

3 réponses
Avatar
Informatique CARPIMKO
Bonjour,
mon problème est peut-être plus algorithmique, mais il existe peut-etre un
moyen "simple" de le résoudre.
Je souhaiterais concaténer 2 vecteurs, je m'explique: j'ai 2 vecteurs dans
lesquelles je mets des objets. Ces objets sont différents mais ils ont une
variable (année) en commun. J'ai regardé dans l'api Vector mais je n'ai pas
vu de méthode me renvoyant un vecteur. Maintenant je ne suis pas forcé de
garder un vecteur en sortie.
Ex:
Vector 1:
[0]: 1970,true,10
[1]: 1972,true,5
...

Vector 2:
[0]: 1970,"Durand",12/10/1943
[1]: 1971,"Dupond",2/8/1956
[2]: 1972,"Martin",18/3/1952
...
Je n'ai pas forcément les mêmes années mais toutes les années du 1er vecteur
sont contenues dans le deuxième.

3 réponses

Avatar
Kupee
Informatique CARPIMKO wrote:
Bonjour,
mon problème est peut-être plus algorithmique, mais il existe peut-etre un
moyen "simple" de le résoudre.
Je souhaiterais concaténer 2 vecteurs, je m'explique: j'ai 2 vecteurs dans
lesquelles je mets des objets. Ces objets sont différents mais ils ont une
variable (année) en commun. J'ai regardé dans l'api Vector mais je n'ai pas
vu de méthode me renvoyant un vecteur. Maintenant je ne suis pas forcé de
garder un vecteur en sortie.
Ex:
Vector 1:
[0]: 1970,true,10
[1]: 1972,true,5
...

Vector 2:
[0]: 1970,"Durand",12/10/1943
[1]: 1971,"Dupond",2/8/1956
[2]: 1972,"Martin",18/3/1952
...
Je n'ai pas forcément les mêmes années mais toutes les années du 1er vecteur
sont contenues dans le deuxième.


Euh ben ya Vector.addAll(Collection) mais je comprend pas vraiment ton
histoire d'objets qui ont un champ commun. qu'est ce que tu attend comme
résultat ?
En tout cas c'est bizarre de mettre des objet de type différent dans un
même vecteur.

Avatar
Jaypee
Informatique CARPIMKO wrote:
Bonjour,
mon problème est peut-être plus algorithmique, mais il existe peut-etre un
moyen "simple" de le résoudre.
Je souhaiterais concaténer 2 vecteurs, je m'explique: j'ai 2 vecteurs dans
lesquelles je mets des objets. Ces objets sont différents mais ils ont une
variable (année) en commun. J'ai regardé dans l'api Vector mais je n'ai pas
vu de méthode me renvoyant un vecteur. Maintenant je ne suis pas forcé de
garder un vecteur en sortie.
Ex:
Vector 1:
[0]: 1970,true,10
[1]: 1972,true,5
...

Vector 2:
[0]: 1970,"Durand",12/10/1943
[1]: 1971,"Dupond",2/8/1956
[2]: 1972,"Martin",18/3/1952
...
Je n'ai pas forcément les mêmes années mais toutes les années du 1er vecteur
sont contenues dans le deuxième.


Bonjour,


Ce serait plus clair avec l'exemple du vecteur résultat comme par exemple :
Vector 3:
[0]: 1970,true,10, "Durand",12/10/1943

C'est une opération de laminage de données en quelque sorte.
(cf commande unix "lam" pour coller côte-à-côte deux fichiers)

J-P

Avatar
BJB
Bonjour,

Le addAll() doit marcher comme escompter ...

Pour préciser la deuxiéme partie de ce qui est demander,
si j'ai bien comprit ce que tu cherches, c'est aussi un problème d'héritage.

Si tu tes deux classes (celle utilisée dans le vecteur 1 et celle
utilisée dans le vecteur 2) ont une classe parente en commun qui
comporte un champ année (ou mieux un propriété java bean), alors tu
pourras facilement voir l'ensemble des instances des deux classes sous
la forme d'une classe parent et récupérer le champ dans une boucle ;-)

Si tu ne souhaite pas utiliser l'héritage, tu peux utiliser une
interface et implémenter une propriété commune avec les setter/getter
idoines (par exmple : void setAnnee(int annee) et int getAnnee() ). Les
deux classes implementant cette interface.

A+

JB

Kupee wrote:
Informatique CARPIMKO wrote:

Bonjour,
mon problème est peut-être plus algorithmique, mais il existe
peut-etre un moyen "simple" de le résoudre.
Je souhaiterais concaténer 2 vecteurs, je m'explique: j'ai 2 vecteurs
dans lesquelles je mets des objets. Ces objets sont différents mais
ils ont une variable (année) en commun. J'ai regardé dans l'api Vector
mais je n'ai pas vu de méthode me renvoyant un vecteur. Maintenant je
ne suis pas forcé de garder un vecteur en sortie.
Ex:
Vector 1:
[0]: 1970,true,10
[1]: 1972,true,5
...

Vector 2:
[0]: 1970,"Durand",12/10/1943
[1]: 1971,"Dupond",2/8/1956
[2]: 1972,"Martin",18/3/1952
...
Je n'ai pas forcément les mêmes années mais toutes les années du 1er
vecteur sont contenues dans le deuxième.



Euh ben ya Vector.addAll(Collection) mais je comprend pas vraiment ton
histoire d'objets qui ont un champ commun. qu'est ce que tu attend comme
résultat ?
En tout cas c'est bizarre de mettre des objet de type différent dans un
même vecteur.