Comment voulez-vous garder l'original de l'ordre dans une liste de tableaux de valeurs uniques?
Par exemple si je veux conserver l'ordre de la chaîne qui apparaît en premier, mais je veux aussi la deuxième occurrence de la dupliquer à suivre après le premier sur la liste de sortie. par exemple, si j'ai ajouté:
arrlist.add("bob");
arrlist.add("pat");
arrlist.add("tan");
arrlist.add("bob");
arrlist.add("mat");
arrlist.add("chat");
arrlist.add("chien");
arrlist.add("chat");
Je veux que la sortie de la
String = bob
String = bob
String = pat
String = tan
String = mat
String = cat
String = cat
String = dog
C'est mon code:
package com.tutorialspoint;
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
//create an empty array list with an initial capacity
ArrayList<String> arrlist = new ArrayList<String>();
//use add() method to add elements in the list
arrlist.add("bob");
arrlist.add("pat");
arrlist.add("tan");
arrlist.add("bob");
arrlist.add("mat");
arrlist.add("cat");
arrlist.add("dog");
arrlist.add("cat");
//let us print all the elements available in list
for (String number : arrlist) {
System.out.println("String = " + number);
}
//retrieves element at 4th postion
String retval=arrlist.get(3);
System.out.println("Retrieved element is = " + retval);
}
}
- Votre anglais semble être à venir le long très bien! Voulez-vous dire que vous voulez que les éléments à imprimer dans l'ordre de tri?
- oui je le fais mais par exemple si je l'avais Ajouté à La chaîne 1)apple 2) banane 3)apple 4) de la mangue au lieu de sortir le même ordre, je veux le double de suivre la première occurrence de celui-ci en double donc je veux qu'il sortie: pomme,pomme, banane, mangue
- juste pour obtenir ce droit: si j'ai ajouté {pomme, la banane, la pomme, la mangue} vous voulez la liste imprimer: de la pomme, la pomme, la banane, la mangue Ou, peut-être que vous voulez le même apparaître des éléments les uns à côté des autres. si j'ai ajouté {pomme, banane, mangue, kiwi, banane} vous souhaitez imprimer: la pomme, la banane, la banane, la mangue, de kiwi
- oui, c'est ce que je suis à la recherche d'
InformationsquelleAutor mvitagames | 2013-09-18
Vous devez vous connecter pour publier un commentaire.
Si vous voulez que les éléments de sortir dans l'ordre de tri (selon l'ordre alphabétique), prendre un coup d'oeil à un file d'attente de priorité.
Chaque fois que vous ajoutez un élément, il est ajouté basé sur le comparateur. Le comparateur décide de l'ordre (alphabétique, par la longueur, peu importe).
Ensuite, lorsque vous imprimez et supprimer des éléments à partir de l'avant de la file d'attente, vos objets à imprimer dans l'ordre.
bob bob pat tan mat cat cat dog
Vous pouvez obtenir l'index d'une valeur dans la liste avec indexOf(yourString). Vous pouvez l'utiliser pour vérifier si l'entrée existe et insérer la valeur après celui-ci.
Voir la la documentation javadoc pour plus d'informations.
Quelque chose le long des lignes de
Bien là, je l'ai fait, vous a écrit le code...honte sur moi.
Ce n'est pas vraiment "préserver", parce que dans un raw sens, vous avez vraiment fait entrée
bob
première et quatrième, pas première et deuxième.Il n'y a pas natif ensembles de données que je suis au courant que cela, cependant, vous pouvez réaliser cela avec un
LinkedHashMap
(conserve l'ordre de la première fois qu'une touche a été entré) dont la valeur est le comptage du nombre de fois où l'élément a été ajouté:add
méthode qui est la valeur de hachage de la carte ou par défaut à 0. L'incrémenter. Le mettre sur la table de hachage de la carte à nouveau.Exemple
Test
Test de sortie:
Travail ideone exemple
Si vous pouvez utiliser la Goyave, vous pourriez envisager d'utiliser un LinkedHashMultiset, qui va directement à résoudre votre problème sans avoir besoin de s'adapter, par exemple, aux LinkedHashMap proposé par NickC.
Suffit d'utiliser
Collections.sort(myArrayList);
. Vous êtes à l'aide d'unArrayList
deString
, donc si vous souhaitez utiliser un autre type d'objet, vous aurez à mettre en œuvre lescompare()
méthode à l'intérieur de votre objet à utiliser leCollections.sort()
.Prendre un coup d'oeil à Objet De La Commande pour une meilleure explication.