C'est une question assez simple. Lorsque vous imprimez une liste liée, comme: Il l'imprime, entourant la liste des crochets comme ceci: p> [thing 1, thing 2, thing 3]
8 Réponses :
Une réponse rapide et sale est la suivante:
String s = list.toString(); System.out.println(s.substring(1, s.length()-1));
Puisque vous avez inclus le "rapide et sale" de non-responsabilité, je ne vais pas descendre votre réponse. Cela dit, c'est exactement le type de choses que nous devrions être décourageant i> d'autres développeurs de faire.
Il s'agit de la mise en œuvre par défaut de la totring () sur LinkedList. Vous pouvez étendre la liste liée à fournir votre propre implémentation ou utiliser la composition et simplement implémenter l'interface Java.Util.List.List.
Vous pouvez sous-classe linkedlist code> et remplacer son
Tostring () code> méthode, mais cela semble un peu excessif. Au lieu de cela, itérer sur ses éléments et construisez une chaîne code> avec un
stringbuilder code> ou un fichier
stringbuffer code> (si la concurrence est un problème). P >
Je vous suggère de ne pas suivre la réponse fournie par @san Owen a>, car c'est dépendant de la mise en œuvre et donc fragile. p>
Oui - Itéréez la liste et imprimez-la (avec une virgule après chacun, mais le dernier élément). Cependant, il y a des utilités pour aider:
GUAVA : p>
String result = StringUtils.join(list, ", ");
Celui-ci a besoin de +2 pour les utilitaires et le Tostring () code> bit.
Quelle est l'importation pour Stringutils?
modifié à partir de abstractcollection.java code>:
StrBuilder builder = new StrBuilder(); // apache commons lang. for (Object object : yourList) { builder.appendSeperator(", "); builder.append(object.toString()); } System.out.println(builder.toString());
Vous pouvez saisir la chaîne renvoyée par la méthode et bien sûr je suis trop lent. P> p> .tostring () code> et supprimez le premier et le dernier caractère, ou faites votre propre classe de liste et remplacez le
.tostring () code > Méthode pour itérer dans la liste et imprimer les éléments sans supports. Ou vous pouvez le faire comme une classe anonyme comme:
Si vous êtes dans groovy fort>, il n'est pas nécessaire d'importer quoi que ce soit, il suffit de faire: chose 1, chose 2, chose 3 em> p>
BlockQuote> Même chose avec la collection de cartes: P> map = [I:"James Bond", love:"rock N roll", id:"007"]
println map.collect { k,v -> "$k = $v" }.join('\n')