2015-01-09 60 views
0

所以我有一個叫Employee的類,我在其中創建了一個ArrayList。我試圖打印列表的值,但他們打印每個元素的對象引用。我忘了如何做到這一點,我試圖在其他地方查找它,但似乎無法找到答案。如何在字符串中打印數組列表的值?

這裏是Employee類:

public class Employee { 

int employeeID; 
String employeeName; 

public Employee(int employeeId, String employeeName){ 
this.employeeID = employeeId; 
this.employeeName = employeeName; 

} 
... 

這裏就是我打印我的價值觀:

public void printArrListValues() { 

    for(Employee x: employeeList){ 

     System.out.println(x); 
    } 
// Arrays.toString(employeeNameLst); 

} 

我曾嘗試在X上使用.toString(),然而這並沒有解決問題。

打印到控制檯上這對我說:

[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
BUILD SUCCESSFUL (total time: 0 seconds) 
+0

添加'的toString()''到Employee'。 – markspace 2015-01-09 23:28:51

+0

爲什麼不使用'Vector'或'HashMap'。它更容易檢索集合 – TheUknown 2015-01-09 23:38:14

+1

中的隨機值'Vector'已被Java 1.2中的'ArrayList'取代。 – ajb 2015-01-10 00:02:27

回答

3

當你傳遞一個對象來println,最終toString()將被調用。因爲你沒有覆蓋toString()Employee繼承Object's toString() method,它負責你看到的輸出。

換句話說,該方法返回一個字符串等於值:

getClass().getName() + '@' + Integer.toHexString(hashCode()) 

覆蓋toStringEmployee,並返回String印在Employee當你想看到。

+0

對不起,我不完全明白我需要做什麼。我是否需要進入我的Employee類,然後創建一個'toString()'方法,將'Employee'作爲參數,然後使用'System.out.print()'打印它的內容? – 2015-01-09 23:38:54

+0

不完全正確。在'Employee'中創建一個簽名爲'public String toString()'的方法,無參數。當創建一個表示你希望輸出的字符串時,使用你的實例變量'employeeID'和'employeeName',_return_表示'String';不要打印它。 'println'方法將打印任何由'toString()'返回的內容。 – rgettman 2015-01-09 23:43:28

+0

很酷的作品:)謝謝! – 2015-01-09 23:49:35

0
  1. 可以覆蓋toString方法類員工
  2. 或x.getter方法