繁体   English   中英

打印出数组列表中的每个项目

[英]Printing out each item in an arraylist

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

我总共有3节课

告诉-主程序

Item-创建单个电话簿项目的类

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

我想做的是列出在“目录”中创建的数组列表中的所有项,然后即时通讯这样做。

告诉

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
}

条目

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()方法中需要做些什么,以便我可以打印目录中的各个项目。

有人可以指出我正确的方向吗? 这是我第一次真正在多个类中使用数组列表,我感到非常困惑。

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

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

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

entries是您的Directory类中的static列表。

在您的Tell类中,只需调用您的print方法即可:-

Directory.print();

现在您没有调用printItem() 我假设您对.showRecord()调用要么替换printItem()要么被删除,因为他们试图完成同一件事。

假设您删除了.showRecord()而仅使用printItem() ,并且您正在使用某种类型的集合,并且该类的数据成员在Directory类中具有名为entries

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

这就是您所需要的,因为您已经覆盖了Entry类中的toString()函数。 这将为您遍历目录中的每个条目,并一次将它们打印在单独的行上。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM