convertir des éléments d’une liste en chaîne

Je voudrais obtenir le texte de la chaîne des éléments stockés dans une liste, disons List . Les méthodes toArray () et toSsortingng () seraient-elles les meilleures options?

Oui, mais le faire manuellement vous donne plus de contrôle:

 // initialize with the exact length List ssortingngsList = new ArrayList(listOfCars.size()); for (Car car : listOfCars) { ssortingngsList.add(car.toSsortingng()); } 

Si vous n’avez pas remplacé la toSsortingng() ou si vous ne souhaitez pas la remplacer, vous pouvez utiliser car.getName() au lieu de car.toSsortingng() (ou toute combinaison de propriétés de votre car.toSsortingng() ).

Une autre idée est d’utiliser Apache Commons Lang pour écrire le code suivant:

 SsortingngUtils.join(myList); 

L’intérêt est que vous pouvez également fournir un séparateur, par exemple:

 SsortingngUtils.join(myList, " ; "); 

Si vous n’objectez pas à la sortie de chaîne conformément à la convention:

 [A, B, C] 

… vous pouvez simplement appeler la toSsortingng() pour obtenir votre sortie (je ne suis pas sûr de savoir pourquoi les gens recommandent d’utiliser une boucle pour cela). Il peut également être judicieux de remplacer la toSsortingng() de Car pour renvoyer une description de l’object conviviale.

Toutefois, si vous souhaitez obtenir chaque élément sous forme de Ssortingng individuelle, vous devez effectuer une itération sur l’élément Liste, élément par élément.

Il existe une static toSsortingng(Object[]) java.util.Arrays . L’appeler avec le résultat toArray() de la liste (comme vous l’avez suggéré) devrait faire l’affaire.

Vous pouvez utiliser Java 8 Streams

 List carList = new ArrayList<>(); //Add some elemts to carList carList.stream() .map(Car::toString) // maps Car Object to a value returned by toString method .collect(Collectors.joining(",")); 

Référez-vous à JavaDoc à propos des Collectors pour plus d’informations.

Commencez par convertir votre liste (collection) en un tableau, puis créez une chaîne de chaque élément.

 Arrays.toSsortingng(myCollection.toArray()); 

Je ne souhaite pas donner de réponse distincte de hkbharath, ce qui est une bonne réponse, mais je souhaite donner davantage d’exemples d’utilisation de stream Java 8. Collectors.joining () a quelques variantes surchargées différentes.

Disons que le code dans son exemple:

 carList.stream() .map(Car::toSsortingng) // maps Car Object to a value returned by toSsortingng method .collect(Collectors.joining(",")); 

Vous donne ceci: Ford, Honda, Buick

Ensuite, si vous n’avez pas besoin de délimiteur:

 carList.stream() .map(Car::toSsortingng) // maps Car Object to a value returned by toSsortingng method .collect(Collectors.joining()); 

Je vous donnerais plutôt: FordHondaBuick

Et voici un exemple détaillé montrant comment manipuler chaque chaîne, modifier le délimiteur et append un préfixe et un suffixe:

 carList.stream() .map(Car::toSsortingng) // maps Car Object to a value returned by toSsortingng method .map(Ssortingng::toUpperCase) // Transform to upper case .collect(Collectors.joining("; ", "[", "]")); 

Je vous donnerais plutôt: [FORD; HONDA; BUICK]

 for (Car car : carsList) { // carsList is the object of List System.out.println(car); } 

Remarque: Ce qui précède n’affiche le message significatif que lorsque vous avez remplacé la méthode toSsortingng () de la classe Car.

par exemple

 public class Car { private Ssortingng carName; .... .... public Ssortingng toSsortingng() { return carName; } } 

La méthode toSsortingng () doit être remplacée pour renvoyer des informations significatives sur l’object sous la forme chaîne.

Dans votre cas, je pense que les informations significatives seraient tous les détails de la voiture. Donc, remplacer la méthode toSsortingng () est la meilleure approche au lieu d’utiliser getCarName () ou des méthodes similaires.