"bar", "foo", "baz", "xyz"
4 Réponses :
public static <T> List<T> rearrange(List<T> items, T input) {
int index = items.indexOf(input);
List<T> copy;
if (index >= 0) {
copy = new ArrayList<T>(items.size());
copy.add(items.get(index));
copy.addAll(items.subList(0, index));
copy.addAll(items.subList(index + 1, items.size()));
} else {
return items;
}
return copy;
}
Tout d'abord, retirez l'élément, puis ajoutez l'élément à nouveau en position 1.
List<String> strings;
List<String> rearrange(String input) {
strings.remove(input);
strings.add(0,input);
return strings;
}
Depuis que vous avez plus de 20000 en réputation, je prends ce commentaire au sérieux. Donne une réponse précise en code à une question comme celle-ci? Ma réponse serait-elle vraiment meilleure si j'ai enlevé le code?
Lorsque vous avez publié votre première réponse, il s'agissait d'une réponse en double. J'ai suggéré que la solution dans mon commentaire et Mike a également nourri la réponse. Donc, votre réponse n'était même pas nécessaire car elle n'a pas ajouté de nouvelles informations et il suffit de clouer le forum. Au lieu de cela, essayez de pointer l'affiche dans la bonne direction afin de pouvoir apprendre la langue java. Vous faites cela en les forçant à lire l'API pour apprendre quelles méthodes sont disponibles. Si l'affiche ne comprend pas la réponse, ils peuvent poster un commentaire de suivi. Laissez les gens problématiques résolvent seuls avec un pointeur dans la bonne direction.
C'est vieux, mais je ne suis pas d'accord avec le Camickr. Poster des réponses comme des réponses est précieuse. Les commentaires sont pour les discussions, pas les réponses.
Pour déplacer l'élément d'origine en haut de la liste d'origine:
public static <T> void rearrange(List<T> items, T input){
int i = items.indexOf(input);
if(i>=0){
items.add(0, items.remove(i));
}
}
public static <T> void setTopItem(List<T> t, int position){
t.add(0, t.remove(position));
}
Même si je comprends parfaitement votre réponse, un texte serait apprécié.
Comment pensez-vous que vous feriez cela? Publiez votre code qui montre ce que vous avez essayé de faire. Commencez par lisant l'API de la liste pour des méthodes telles que "Supprimer", "Insérer".
@ user339108 Vous devez utiliser LinkedHashMap, qui utilise l'ordre d'accès pour afficher le plus récemment utilisé.