0

我创建了一个链表类来制作一个简单的寄存器,我可以在其中从列表中添加和删除学生。但是我不确定如何为链表创建我的 toString 方法,最好的方法是什么?提前致谢!

import java.util.*;
public class Registry {


LinkedList<Student> studentList
        = new LinkedList<Student>();
//setting my type parameter




public Registry() {}


public void addStudent(Student aStudent) {}


public void deleteStudent(int studentID) {}


public String toString(){}




public String format() {}


}
4

5 回答 5

3

LinkedList 已经有一个从 AbstractCollection 继承的 toString() 方法。

toString

public String toString()

Returns a string representation of this collection. The string representation consists
of a list of the collection's elements in the order they are returned by its iterator,
enclosed in square brackets ("[]"). Adjacent elements are separated by the characters
", " (comma and space). Elements are converted to strings as by String.valueOf(Object).

Overrides:
    toString in class Object

Returns:
    a string representation of this collection

这不是你想要的吗?

于 2013-04-18T13:15:31.893 回答
1

目的似乎是列出存储在您的链接列表中的所有学生,而不是覆盖toString()链接列表。只要你的Student类覆盖了它的toString()方法,你就在路上。打印链接列表将调用它的toString()方法并给你你想要的。

覆盖 toString() 的示例类

class MyClass 
{
    private int x;
    private int y;

    /* getters and setters  */

    @Override
    public String toString()
    {
        return "MyClass [x=" + x + ", y=" + y + "]";
    }
}

用法

List<MyClass>  myList = new LinkedList<MyClass>();
MyClass myClass = new MyClass();
myClass.setX(1);
myClass.setY(2);
myList.add(myClass);
System.out.println(myList);

印刷

[我的班级 [x=1, y=2]]

于 2013-04-18T13:18:50.687 回答
0

我会使用 StringBuilder 并在列表中循环。

public String toString(){
  StringBuilder sb = new StringBuilder();
  for (Student s: students){
    sb.append(s.toString()+",");
  }
  return sb.toString();
}

在 Student 类的 toString() 方法中包含您想要的任何信息。

编辑:我注意到链表上的 toString() 正在使用 String.valueOf() 的其他响应之一。我实际上更喜欢在大多数情况下,因为它会处理空值,除非您当然想知道空值何时出现在此列表中。

所以而不是:

sb.append(s.toString()+",");

你可以使用:

sb.append(String.valueOf(s),"+");
于 2013-04-18T13:15:36.150 回答
0

覆盖注册表类中的 toString()

LinkedList 将调用成员对象的 toString()

资源

Returns a string representation of this collection. The string representation consists of a list of the collection's elements in the order they are returned by its iterator, enclosed in square brackets ("[]"). Adjacent elements are separated by the characters ", " (comma and space). Elements are converted to strings as by java.lang.String.valueOf(java.lang.Object).

于 2013-04-18T13:16:37.240 回答
0
  1. 您没有创建链表类 - 您创建了一个LinkedList对象。
  2. 你想要的是你的Registry类的 toString() 方法

    公共字符串 toString() { 布尔括号添加 = false; StringBuffer 结果 = new StringBuffer();

    for(Student student : studentList) {
        result.append(bracketAdded ? ", " : "[");
        result.append(student);
        bracketAdded = true;
    }
    result.append("]");
    
    return result.toString();
    

    }

现在剩下的就是toString()为你的类实现一个方法Student

于 2013-04-18T13:18:01.763 回答