2012-10-27 66 views
0

我試圖從另一個類列出陣列列表中的項目。打印陣列列表中的每個項目

我有3個班共

告訴我們 - 主程序

項目 - 其中存儲的所有項目目錄對象 - 創建個人電話簿項目

目錄的類。

我試圖做的是列出所有在「目錄」中創建的數組列表中的項目和IM做這樣....

TELL

if (Directory.entries.size>0) 
{ 
    for (int i=0; i<Directory.entries.size(); i++) // Check size of array 
    { 
      Directory.entries.get(i).showRecord(); 
    } 
} 

目錄

public void printItem()  
{ 
    //I HAVE NO IDEA WHAT GOES HERE 
} 

ENTRY

public class Entry 
{ 
String name; 
String telNo; 
public Entry(String aName, String aTelNo) 
{ 
    setNumber(aTelNo); 
    setName(aName); 
} 
// Add methods here 
private void setNumber(String aTelNo) 
{ 
    telNo = aTelNo; 
} 

public String getNumber() 
{ 
    return telNo; 
} 

private void setName(String aName) 
{ 
    name = aName; 
} 

public String getName() 
{ 
    return name; 
} 

public String toString() 
{ 
    return name + "." + telNo; 
} 


} 

但是我havnt得到了最需要在printItem()方法中去的內容,以允許我打印目錄中的各個項目。

難道有人指着我正確的方向嗎?這是我第一次真正使用多個類的數組列表,我非常困惑。

+0

你從哪裏調用你的printItem?你想在那裏打印什麼? –

+2

你永遠不會調用printItem,所以放任何你想要的。把你的貓的ASCII藝術圖片放在它所能做的所有事情上。 –

+0

但是,您確實需要實現您在Entry中調用的showRecord方法。 –

回答

1

由於您在Entry類中忽略了toString,所以您只需遍歷列表並打印每個項目即可。它會自動調用Entry類的toString並打印返回值: -

將此代碼放入您的print方法中,該方法位於Directory類中。

public static void print() { 
    for (Entry entry: Directory.entries) { 
     System.out.println(entry); 
    } 
} 

entriesstatic列表你有你的Directory類。

從你Tell類,只需調用您print方法: -

Directory.print(); 
+0

完美,謝謝你...有無論如何計算如果Directory.entries中的項目數量大於0從Tell方法? 我試過如果(Directory.entries> 0) –

+0

做'Directory.entries.size()> 0' –

0

現在你不必printItem()通話;我假設您致電.showRecord()要麼取代printItem()要麼被刪除,因爲他們試圖完成同樣的事情。

假設您刪除.showRecord(),只使用printItem(),而是和你正在使用某種類型的集合數據成員的命名entriesDirectory類中:

public void printItem() { 
    for (Entry entry : this.entries) { 
     System.out.println(entry); 
    } 
} 

是你所需要的,因爲你已經推翻了toString()函數在你的Entry類中。這將遍歷目錄中的每個條目,並將它們打印在不同的行上。

0

您可以使用TreeMap<String, String>來保存電話簿中的項目列表。 TreeMap將確保您的密鑰按自然順序(按人名)排序,並且目錄中沒有重複的名稱(每個人名稱都是唯一的)。 要打印條目將是一個簡單的String treeMap.get(key);