打印出arraylist中的每个项目

时间:2012-10-27 14:07:22

标签: java arraylist

我试图列出另一个类的数组列表中的项目。

我总共有3个班级

告诉 - 主程序

项目 - 创建单个电话目录项目的类

目录 - 存储所有项目的目录对象。

我要做的是列出在“目录”中创建的数组列表中的所有项目,我就像这样做....

TELL

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

DIRECTORY

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;
}


}

但是我在printItem()方法中遇到了最困难的事情,允许我打印目录中的各个项目。

有人能指出我正确的方向吗?这是我第一次真正使用多个类的数组列表而且我很困惑。

3 个答案:

答案 0 :(得分:1)

由于您已覆盖toString课程中的Entry,因此您需要做的就是遍历您的列表并打印每个项目。它将自动调用Entry类的toString并打印返回的值: -

将此代码放在print类{。}}中的Directory方法中。

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

entries是您static课程中的Directory列表。

从您的Tell课程中,只需调用print方法: -

Directory.print();

答案 1 :(得分:0)

现在你没有打电话给printItem();我假设您对.showRecord()的调用要么替换printItem()要么被删除,因为他们正在尝试完成同样的事情。

假设您删除.showRecord()而只是使用printItem(),并且您正在使用entries类中名为Directory的数据成员的某种类型的集合:< / p>

public void printItem() {
    for (Entry entry : this.entries) {
        System.out.println(entry);
    }
}
由于您已经覆盖了toString()课程中的Entry功能,因此您只需要

。这将为您遍历目录中的每个条目,并在不同的行上一次打印它们。

答案 2 :(得分:0)

您可以使用TreeMap<String, String>来保存项目的电话目录列表。 TreeMap将确保您的密钥按自然顺序(按人名)排序,并且目录中没有重复的名称(每个人名称都是唯一的)。 打印条目将是一个简单的String treeMap.get(key);