Ant*_*nto 10 java string collections list
我想获取存储在列表中的元素的字符串文本List<Car>.toArray()和toString()方法是最好的选择吗?
Rom*_*las 18
另一个想法是使用Apache Commons Lang编写以下代码:
StringUtils.join(myList);
Run Code Online (Sandbox Code Playgroud)
您的兴趣是您还可以提供分隔符,例如:
StringUtils.join(myList, " ; ");
Run Code Online (Sandbox Code Playgroud)
Ada*_*ski 10
提供您不反对遵循约定的字符串输出:
[A, B, C]
Run Code Online (Sandbox Code Playgroud)
...你可以简单地调用List的toString()方法来获得你的输出(我不知道为什么人们正在使用这种循环主张).覆盖Car的toString()方法以返回对象的人性友好描述也是明智的.
但是,如果您希望将每个元素作为一个元素获取,则String需要一次迭代List一个元素.
有一种static toString(Object[])方法java.util.Arrays.使用toArray()List 的结果调用它(如您所建议的)应该完成这项工作.
是的,但手动操作可以让您获得更多控制权:
// initialize with the exact length
List<String> stringsList = new ArrayList<String>(listOfCars.size());
for (Car car : listOfCars) {
stringsList.add(car.toString());
}
Run Code Online (Sandbox Code Playgroud)
如果您没有覆盖该toString()方法或者不想覆盖它,则可以使用car.getName()而不是car.toString()(或您喜欢的任何属性组合)
您可以使用Java 8 Streams
List<Car> 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(","));
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅JavaDocCollectors.