0
votes

Comment traitrer ArrayList en fonction d'une autre arraylist à Kotlin

Dans ma demande, j'ai 2 arraylistes. Un provenant du serveur et d'un autre des actifs. Je souhaite trier les arraylistes de serveur en fonction de l'ordre de l'arraylist d'actifs à Kotlin. par exemple. Val ServerarrayList = {"XYZ", "ABC", "PQR"} VAL ASSETSLIST = {"ABC", "PQR", "XYZ"}

La production attendue devrait être, serverarraylist = {"abc", "pqr", "xyz"}

Les deux la liste peuvent ne pas toujours contenir le même nombre d'éléments. Parfois, la liste des serveurs peut contenir moins d'éléments mais ne contiendra pas d'éléments autres que la liste locale. Comme, serveurlist = {xyz, pqr} Ensuite, la liste attendue devrait être, Severlist = {PQR, XYZ}

Une aide ou une idée hautement appréciée. Merci d'avance.


1 commentaires

Les deux la liste peuvent ne pas toujours contenir les mêmes éléments. Il est possible que la liste des serveurs contenant moins d'éléments.


4 Réponses :


-1
votes

Vous pouvez effacer la serveurArrayList, puis ajouter les éléments de la défection de la désert à la serveurArrayList.

Si vous n'êtes pas familier avec les opérations ArrayList, vous pouvez trouver plus ici .

edit: mes excuses. Je n'ai pas compris votre question à l'origine. Vous pouvez utiliser un hashmap pour vous aider à garder une trace des index et des éléments souhaités de serveurArrayList. Le processus devrait être quelque chose comme ceci:

  1. Itérer sur ServerarrayList
  2. Pour chaque élément de ServerARrayList, obtenez l'index correspondant de l'acretslist avec indexof ().
  3. mettre chaque paire (index, élément) dans une carte de hachage.
  4. Utilisez la carte de hachage pour renseigner la nouvelle serveurAryList.

    Cherchez des erreurs hors limites lorsque l'indice obtenu pourrait être plus grand que la taille de serveurArrayList, car vous avez mentionné, cela pourrait être de taille plus petite que la liste d'actifs.


3 commentaires

Merci d'avoir répondu. Mais ce n'est pas l'exigence. Parfois, la liste des serveurs peut contenir moins d'éléments que la liste des matrices locales. Nous devons afficher la liste des tableaux de serveur.


Donc, fondamentalement, il s'agit de: tous les éléments provenant du serveur et des éléments situés dans la liste locale mais pas aussi dans la liste des serveurs? Ou l'inverse? (Peut-être que vous pouvez écrire quelques tests que le code doit passer afin que nous soyons sûrs)


@Francesco Mapelli à droite. Nous devons afficher la liste des serveurs. La liste des serveurs peut contenir moins d'éléments que la liste locale mais ne contiendra pas d'éléments autres que la liste locale.



0
votes

J'ai eu des problèmes similaires dans le passé où la commande de la liste A est basée sur la commande de la liste B. Je ne pense pas que cela fonctionnera si les listes sont différentes tailles. Sinon, vous devez avoir le contrôle de la méthode «Swap» dans le tri, de sorte que lorsque les éléments de la liste B sont échangés, les éléments de la liste A. Je ne savais pas un moyen de remplacer cela dans les méthodes de tri kotlin, donc Le passé J'ai écrit ma propre méthode de tri de bulle et échangé dans les deux endroits. D'autres affiches ont donné ce qui pourrait aider: tri Java avec comparateur et fonction d'échange


0 commentaires

0
votes

Lorsque ServerarrayList code> ne contient que des éléments contenus dans AcsetsList CODE>, vous n'avez pas besoin de trier de liste. La seule chose que vous auriez à faire est de filtrer actifslist code> pour contenir uniquement les éléments de serverarraylist code>.

assetsList.filter { it in serverArraylist }


0 commentaires

0
votes
[abc, pqr, xyz]

0 commentaires