![](/img/trans.png)
[英]How to display multiple LinkedList elements to look like a table in JAVA?
[英]How to display LinkedList<String[]> in Java
有很多關於如何顯示 LinkedList< String > 的元素的帖子,但是對於 LinkedList< String[] >,我找不到我理解的內容。
以下代碼顯示了output : LinkedList:[[Ljava.lang.String;@5305068a, [Ljava.lang.String;@1f32e575
而我正在尋找output :LinkedList:[[Audi SQ5,341],[LandRover Discovery,306]]。
而且我不想覆蓋 toString()。
代碼:
LinkedList<String[]> cars2 = new LinkedList<>();
String[] split_result = new String[2];
split_result = "Audi SQ5,341".split(",");
cars2.add(split_result);
split_result = "LandRover Discovery,306".split(",");
cars2.add(split_result);
// 顯示列表的大小
System.out.println("The size of the linked list is: " + cars2.size());
// 顯示鏈表中的字符串??? (不是他們的地址)
System.out.println("LinkedList:" + cars2);
cars2.forEach(element -> System.out.println(element));
我會為此使用 Java Stream。 它具有有用的加入收集器:
LinkedList<String[]> cars2 = new LinkedList<>();
String output = cars2
.stream()
.map(Arrays::toString)
.collect(Collectors.joining(", ", "[", "]"));
你的問題是,雖然默認的 Java collections 像 LinkedList 實現了一個很好的 toString 來打印他們的成員,但 arrays 沒有。 因此,正如其他一些答案所建議的那樣,您要么必須遍歷集合並自己打印結果,要么必須將對象放入具有良好 toString 實現的 LinkedLists 中。 這些可以是 collections 本身List<List<String>>
,或者您可以定義一個 class 來包含您的數據。
class CarInfo {
// these should be encapsulated with getters/setters, I'm being lazy.
public String model;
public String value; // I don't know what this represents, or if it's a string or int
public void toString() { return model + ", " + value; }
}
如果您使用 Lombok,使用@Data注釋非常容易,它將為您生成 toString 和 getter/setter。
@Data
class CarInfo {
String model;
String value;
}
但是,它不會與您想要的 output 完全相同。 如果您希望它像您所描述的那樣用括號專門格式化,那么您無論如何都必須自己做 toString 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.