我试图列出另一个类的数组列表中的项目。
我总共有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()方法中遇到了最困难的事情,允许我打印目录中的各个项目。
有人能指出我正确的方向吗?这是我第一次真正使用多个类的数组列表而且我很困惑。
答案 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);