Java, intersection de deux tableaux
Je l'ai déjà lu quelques autres débordement de la pile des threads sur ce:
pour trouver l'intersection de deux multisets en java
Comment puis-je obtenir de l'intersection entre deux tableaux en un nouveau tableau?
public static int[] intersection (int [] x, int numELementsInX, int [] y, int numElementsInY) {
Je suis en train d'examiner les deux tableaux, ainsi que le nombre de leurs éléments (numElementsInX et numElementsInY), et de renvoyer un nouveau tableau qui contient les valeurs communes de la matrice x et y. Leur point d'intersection.
Example,if x is{1,3,5,7,9}and y is{9,3,9,4} then
intersection(x, 5, y, 4} should return {3, 9} or {9, 3}
Je l'ai lu, j'ai besoin d'utiliser la CL de l'algorithme. Quelqu'un peut-il me donner un exemple de la façon de faire cela? Le tableau et les valeurs dans le tableau sont initialisés et généré dans une autre méthode, puis passé dans l'intersection.
Toute aide/clarification est apprécié.
MODIFIER LE CODE
for (int i=0; i<numElementsInX; i++){
for (int j=0; j<numElementsInY; j++){
if (x[j]==x[i]) { //how to push to new array?;
}
else{
}
}
}
- Vous avez déjà 2 questions qui permettent de résoudre ce problème. Qu'avez-vous essayé?
- vous n'avez pas besoin de l'appoint
numELementsInX
paramètre, vous pouvez simplement utiliserx.length
. - Im en utilisant le paramètre supplémentaire que l'utilisateur peut entrer n'importe quel nombre d'entrées jusqu'à 100, les deux tableaux peuvent avoir un nombre différent de valeurs. Notre professeur veut que nous initialiser le tableau à 100, PUIS de garder une trace de la saisie par l'utilisateur. C'est pourquoi je ne suis pas à l'utiliser.
- Le LCS algorithme ne sera pas utile pour ce problème
- C'est que pour la chaîne de seulement?
- mise à jour avec un peu de code. Merci!
Vous devez vous connecter pour publier un commentaire.
La solution la plus simple serait d'utiliser les jeux, aussi longtemps que vous n'avez pas de soins que les éléments dans le résultat aura un ordre différent, et que les doublons seront supprimés. L'entrée des tableaux
array1
etarray2
sont lesInteger[]
des sous-tableaux de l'int[]
tableaux correspondant au nombre d'éléments que vous avez l'intention de traiter:La ci-dessus sera de retour une
Integer[]
, si besoin, il est simple pour copier et convertir son contenu dans uneint[]
.array1
etarray2
doivent êtreInteger[]
ici afin de fonctionner correctement, il ne fonctionnera pas avecint[]
.array1
etarray2
plusieurs occurrences dex
, ce ne sera pas garder les doublons.new HashSet
appel de constructeur et de garder unCollection
- peut améliorer légèrement les performances.Si vous êtes bien avec java-8, alors la solution la plus simple je pense est de l'aide de ruisseaux et de filtre. Une mise en œuvre est comme suit:
Si vous ne voulez pas utiliser d'autres structures de données comme un Ensemble, puis l'idée de base est que vous voulez faire une itération sur les éléments de l'un des tableaux et, pour chaque valeur de voir si il s'affiche dans l'autre. Comment voyez-vous qu'il apparaît dans l'autre tableau? Promenade à travers les éléments dans l'autre tableau et pour chacun, de voir si sa valeur est égale à la valeur que vous recherchez. Je pense que vous serez mieux servis en essayant de travailler par le biais de ce problème sur votre propre au-delà de ce point, si votre but dans la prise de cette classe est d'apprendre à écrire du Java, mais vous êtes coincé, vous pourriez envisager de mettre à jour votre question avec le code que vous avez écrit de sorte que vous pouvez obtenir des informations plus détaillées et des pointeurs dans la bonne direction.
Essayez ceci:
Avec les éléments en double dans la matrice de trouver de l'intersection.
trouver intersection inclut double en utilisant le hachage de la carte.
De sortie:
1 2 2 15 9 7 12
si les tableaux sont triés
Comment Trouver l'Intersection de 3 des ménagères de tableaux en Java:-
J'ai utilisé la Base de Java, à l'aide de boucles & à l'aide de Tableaux.copyOf pour atteindre cet objectif.
Si vous avez toujours voulu mettre en python, c'est une façon que vous pouvez trouver intersection.
Vous pouvez trouver le intersection de deux tableaux avec:
où
T
devrait être substituables par une référence de type Chaîne de caractères, Entier, etc.bien que ce qui précède peut sembler comme il est en train de créer un nouveau jeu pour chaque élément, il est pas du tout le cas. plutôt qu'un ensemble instance est créée.
Le code ci-dessus est équivalente à: