所以我想知道是否有一种方法可以打印出列表中哪个索引冲突最多?除此之外,我想知道,为我的LinkedList生成toString()的最佳方法是什么?我已经尝试过几次使用LinkedList toString的默认实现,但是我不太清楚该怎么做。
谢谢!
代码:
static LinkedList<Node> hashTable[] = new LinkedList[100];
static class Node {
int value;
int key;
@Override
public String toString() {
return "Value: " + value + " " + "Key: " + 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;
}
答案 0 :(得分:0)
类是对象。 LinkedList是一个类。所有对象都扩展了java.lang.Object,您可以始终在它们上调用Object.toString()
,但是您可能需要寻找一种打印所有值的方法。在这种情况下,最好使用for循环:
for(int i=0; i<items.size(); i++){
System.out.println(items.get(i));
}
您正在打印多行,每行包含不同数量的Node
对象。您想找到哪一行具有最多的Node对象。
执行此操作的方法很简单。您需要嵌套的for循环才能打印出来,因此可以通过for循环来做到这一点
int maxNodes = Integer.MIN_VALUE;
int index = -1;
for(int i=0; i<LinkedList.size(); i++){
int nodes = 0;
for(int j=0; j<nestedLinkedList.size(); j++){
System.out.print(NodeInformation);
nodes++;
}
if(nodes>maxNodes){
index = i;
maxNodes = nodes;
}
System.out.println();
}
此示例代码将查找哪行包含最多的Node对象。