我正在从事一项工作,并打了一堵砖墙。我真的很难理解如何处理这些问题。
我给出的基本代码是HashMap的构造函数。它使用字符串数据类型作为键和值,并将它们存储在数组中。代码如下所示:
注意:我不能使用任何包。
public class HashMap
{
private long noofitems;
private HashPair[] data;
public HashMap(int initlen)
{
noofitems=0;
data=new HashPair[initlen];
}
public void AddItem(String key, String value)
{
}
public String GetValue(String key)
{
return null;
}
}
还有一个用于HashPair的第二个文件,用于存储值。
public class HashPair
{
public String key, value;
public HashPair(String key, String value)
{
this.key=key;
this.value=value;
}
public String GetKey()
{
return key;
}
public String GetValue()
{
return value;
}
请问有人可以给我一些关于从AddItem函数开始的方向吗?我真的很茫然。
谢谢!
答案 0 :(得分:-2)
首先,您的代码缺少结束括号HashPair
类。你需要实例化HashPair
并将其放在data
数组中,即
private long noofitems;
public HashPair[] data;
int counter = 0;
public HashMap(int initlen)
{
noofitems = initlen;
data=new HashPair[initlen];
}
public void AddItem(String key, String value)
{
HashPair item = new HashPair(key, value);
if(counter< noofitems )
{
data[counter] = item;
counter++;
}
}
但在添加项目时需要对数据进行更多检查和功能。就像你需要检查插入项目的位置,并检查你的数据是否已经满了没有项目
答案 1 :(得分:-2)
这是:
public void AddItem(String key, String value)
{
HashPair[] tmpData = new HashPair[this.data.length + 1];
System.arraycopy(this.data, 0, tmpData, 0, this.data.length);
// set new last elements data
tmpData[tmpData.length - 1] = new HashPair(key, value);
// replace data with newly created tmpData array
this.data = tmpData;
}
P.S。恕我直言:用数组支持HashMap的想法只能进入一些学术/教授的脑袋。 : - )