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

用于'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(", ");
    }
}

  ask by John DOe translate from so

本文未有回复,本站智能推荐:

1回复

HashTable Collision它使用LinkedList存储多个具有相同键的值

我读了很多次,在一个哈希表中,当碰撞出现时,一个密钥有多个值,它存储在一个链表中,然后它将等于调用以检查哪些键映射到所需的值,但我看到哈希表的代码,它没有任何链表列表put方法或get方法。 它使用Entry []数组,我不明白它将如何用作链表。 请引导并澄清我的怀疑。
3回复

LinkedList作为Hashtable的值

我创建了一个Hashtable,将String作为键,并将StringedLinkedList作为值。 这是我的实现: 我想要做的是对一个单词文件进行排序,并将每个排序后的单词存储到哈希表中(表示键),并将原始单词存储为我的LinkedList值的一部分。 例如,如果单词是
1回复

如何实现我自己的LinkedList Java中的数据结构?

我正在做一些事情,如果我使用的多个对象是由我自己编写的(而不是使用Java的库),这将使工作变得更加容易。 我目前坚持使用LinkedList类和Node类实现ArrayList<ArrayList>对象(我们可以将其称为MyHashTable )。 到目前为止,这是我正确实现的
2回复

添加通用类型的元素 到LinkedList的arrayList

我想在Java中创建一个哈希表类,在其中将键值对存储在链表的ArrayList中。 我通过声明来做到这一点 然后,我想创建一个linkList对象,该对象可用于在arrayList的每个索引内创建一个新的链表。 我通过声明: 然后设置我的add函数,将元素添加到arrayed
1回复

在 ArrayList 内将数字添加到 LinkedList

我正在尝试将一个整数添加到 LinkedList 中; 但是,我不确定如何将整数添加到已经存在的 LinkedList。
2回复

将项目添加到哈希表LinkedList

我有一个哈希表map与LinkedLists中的每个元素(实施分离链所解释这里 )。 如何将新节点添加到表中的每个LinkedList元素? 我在动脑筋,我不认为 map.get(index).add(new Object); 会起作用,只是因为Hashtable的get()方法获
1回复

有关LinkedList节点的HashTable性能的问题

我在Class的init上实现了一个具有可变大小的存储桶的HashTable,只是一个在运行时调整大小的链接列表数组。 问题在于,对于必须遍历链表的存储桶数量很少(深度可以达到约5K节点),HashTable的性能超过了HashTable,更多的存储桶相差三个数量级。 我希望较大的
2回复

如何从HashTable将元素添加到LinkedList并对其进行排序?

我目前正在编写一个单词计数器程序,该程序将使用Hashtable对文件中的单词进行计数,并且我想在该程序中创建一个链接列表,以按降序对单词的出现进行排序。 我知道如何将元素添加到链表中,但是我不知道如何将Hashtable表中的元素添加到链表中并按降序对值进行排序。 你能帮忙吗?