Extraction des éléments commun
khatrouch
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai une classe Cpl définit comme suit:
public class Cpl {
public int id;
public double belief;
}
j'ai la classe List définit comme suit :
public class List
{
public String value;
public long bin_code;
public int attribute;
public ArrayList<Cpl> liste = new ArrayList<Cpl>();
}
Puis je définit une autre classe:
Public class VerifList
{
public ArrayList<List> al = new ArrayList<List>();
public ArrayList<Cpl> cp = new ArrayList<Cpl>();
}
Je cherche à extraire les couples (objets de classe Cpl) qui se trouvent simultanément dans toutes les listes stockés dans l'arraylist al (c'est à dire ayant le même attribut id) et par la suite les stocker dans L'arrylist cp.
Par exemple on a un arrayliste al qui contient 3 listes avec:(ici je précise uniquement les couples)
L1:(1,0.5) (3,0.6) (2,0.4)
L2:(2,0.7)(3,0.8)
L3: (2,0.6)
Donc on va extraire uniquement un nouveau couple c ayant le meme id=2
et le produit des belief=0.4*0.7*0.6 =0.168=> c(2,0.168)
Comment je peux élaborer une fonction qui permet d'obtenir ce résultat?
J'ai une classe Cpl définit comme suit:
public class Cpl {
public int id;
public double belief;
}
j'ai la classe List définit comme suit :
public class List
{
public String value;
public long bin_code;
public int attribute;
public ArrayList<Cpl> liste = new ArrayList<Cpl>();
}
Puis je définit une autre classe:
Public class VerifList
{
public ArrayList<List> al = new ArrayList<List>();
public ArrayList<Cpl> cp = new ArrayList<Cpl>();
}
Je cherche à extraire les couples (objets de classe Cpl) qui se trouvent simultanément dans toutes les listes stockés dans l'arraylist al (c'est à dire ayant le même attribut id) et par la suite les stocker dans L'arrylist cp.
Par exemple on a un arrayliste al qui contient 3 listes avec:(ici je précise uniquement les couples)
L1:(1,0.5) (3,0.6) (2,0.4)
L2:(2,0.7)(3,0.8)
L3: (2,0.6)
Donc on va extraire uniquement un nouveau couple c ayant le meme id=2
et le produit des belief=0.4*0.7*0.6 =0.168=> c(2,0.168)
Comment je peux élaborer une fonction qui permet d'obtenir ce résultat?
A voir également:
- Extraction des éléments commun
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Agenda commun google - Guide
- Copier plusieurs éléments - Guide
- Photo en commun - Guide
- Je ne vois pas tous les amis en commun sur facebook - Forum Facebook
On a donc d'une part une interface Collection<E> qui définit la méthode retainAll(Collection<?>) et d'autre part la classe ArrayList<E> qui implémente Collection<E>. Mais dans ton cas particulier tu peux considérer que toutes les collections que tu manipuleras sont des ArrayList.
Donc si tu as ArrayList id1, et ArrayList id2, tu peux faire id1.retainAll(id2); ce qui va enlever de id1 tout ce qui n'est pas dans id2 (on ne conserve donc que ce qui est commun), il reste plus qu'à recommencer avec id3...
Exemple (de tête, il faudrait vérifier)