繁体   English   中英

将 toString() 与 LinkedList 一起使用

Using toString() with LinkedList

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想知道如何创建一个toString()方法来打印我的linkedlist ,如我的 main 方法的底部所示。 我试图实现我在网上找到的一个,但它出现了几个错误:

对于“e”和“iterator()”(找不到符号。)

除此之外,我还想知道是否有一种方法可以在不使用 Iterator 或StringBuilder的情况下实现toString()方法。

代码:

static LinkedList<Node> hashTable[] = new LinkedList[100];

static class Node {

    int value;
    int key;
}

public static void main(String[] args) throws FileNotFoundException {

    File f = new File("Ex5.txt");

    Scanner scan = new Scanner(f);

    if (f.exists() == false) {
        System.out.println("File doesn't exist or could not be found.");
        System.exit(0);
    }

    for (int i = 0; i < 100; i++) {
        hashTable[i] = null;
    }

    while (scan.hasNextInt()) {
        int n = scan.nextInt();
        insert(n, hashFunction(n));
    }

    for (int i = 0; i < 100; ++i) {
        System.out.println(hashTable[i]);
    }

    int emptyEntries = 0;

    for (int i = 0; i < 100; i++) {
        if (hashTable[i] == null) {
            emptyEntries += 1;
        }
    }
    System.out.println("Number of empty entries: " + emptyEntries);


}

public static void insert(int key, int value) {
    int index = hashFunction(value);
    LinkedList<Node> items = hashTable[index];

    if (items == null) {
        items = new LinkedList<>();

        Node item = new Node();
        item.key = key;
        item.value = value;

        items.add(item);

        hashTable[index] = items;
    } else {
        for (Node item : items) {
            if (item.key == key) {
                item.value = value;
                return;
            }
        }

        Node item = new Node();
        item.key = key;
        item.value = value;

        items.add(item);
    }
}

public static int hashFunction(int value) {
    int hashKey = value % 100;
    return hashKey;
}

@Override
public String toString() {
    Iterator<Object> i = iterator();
    if (!i.hasNext()) {
        return "[]";
    }

    StringBuilder sb = new StringBuilder();
    sb.append('[');
    for (;;) {
        Object element = i.next();
        sb.append(e == this ? "(this Collection)" : element);
        if (!i.hasNext()) {
            return sb.append(']').toString();
        }
        sb.append(", ");
    }
}
问题暂未有回复.您可以查看右边的相关问题.
1 LinkedList在面试中使用

[ 编辑 ]修正了我的代码。 是while(temp!= NULL),而不是while(temp-&gt; next!= NULL)。 很抱歉插入错误的代码。 今天我参加了在线编程测试。 采访者使用Codility评估我的代码和其他受访者。 在某个时刻,关于链接列表的问题已经提出。 ...

2 toString在Java中使用

我在Java中查询了toString(),当我创建一个toString方法时,我被教导要做,例如: 我想知道我可以做一个无返回值的方法,例如: ...

3 在 ToString 中使用“{0} of {1}”

打印出一副牌我的 class 中有一个字符串,上面写着 但我希望所有结果都在偶数列中,所以我尝试了 我不认为我能做到这一点,我得到一个错误。 是否有另一种方法来修改 tostring,以便我制作偶数列? ...

5 在SmallTalk中使用LinkedList类?

我不确定我是否完全理解如何使用SmallTalk Visual Works提供的LinkedList类。 我可以通过简单的操作来创建该类的实例: 但是如何添加节点。 我尝试创建Link类的实例并设置一个值,但它似乎不起作用。 我是Smalltalk的新手,任何帮助将不胜感激! ...

7 在ToString覆盖中使用ToString时出错

我是编码新手,使用ToString覆盖时遇到问题。 当我尝试在其他ToString覆盖中使用已经重载的类的ToString时,出现此错误: 非静态字段,方法或属性Freight.ToString()需要对象引用 请帮忙! ...

2018-05-13 17:42:12 2 42   c#
8 在Java中使用toString()方法

我试图在我称为Employee()的类中利用toString()。 我有一个类型为Employee的一维数组,用于存储Employee Data,其中包括Employee ID,Employee Name,Employee Address和Employee Hire Date。 我希望用户指 ...

9 无法在 scriptcs 中使用 toString()?

这似乎是一个非常愚蠢的问题,但我真的被困住了,所以这里是: 通常,当我想使用 toString() 时,我会写 根据.NET Pearls ,这是正确的用法。 毕竟 toString() 是Object 类中的一个方法。 但是 scriptcs 告诉我: 错误 CS1061:“int”不 ...

暂无
暂无

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

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