【发布时间】:2010-04-09 22:59:10
【问题描述】:
我正在尝试创建一个类,在其中我将键和值放入 put 方法中,该方法将键放入 k 字符串数组中并将值放入 v 字符串数组中,但是当我将其保存在数组中时获取或显示。
例如:put(dan,30) get(dan) 返回 null
显示返回 null null 10 次。有谁知道怎么回事?
public class Memory
{
final int INITIAL_CAPACITY = 10;
String[] k = new String[INITIAL_CAPACITY];
String[] v = new String[INITIAL_CAPACITY];
int count = 0;
public Memory()
{
count = 0;
}
public int size()
{
return count;
}
public void put(String key, String value)
{
int a = 0;
boolean found = false;
for (int i = 0; i < k.length; i++)
{
//System.out.println("key is " + key.equals(k[i]));
if (key.equalsIgnoreCase(k[i]))
{
v[i] = value;
found = true;
}
if (found)
break;
a++;
}
//System.out.println(a == k.length);
if (a == k.length);
{
k[count] = key;
v[count] = value;
//System.out.println(k[count] + " " + v[count]);
count++;
//System.out.println(count);
}
}
public String get(String key)
{
String output = "a";
for(int i = 0; i < k.length; i++)
{
if(!key.equalsIgnoreCase(k[i]))
{
output = null;
}
else
{
output = v[i];
return output;
}
}
return output;
}
public void clear()
{
for (int i = 0; i < k.length; i++)
{
k[i] = null;
v[i] = null;
}
count = 0;
}
public void display()
{
for (int i = 0; i < k.length; i++)
{
System.out.println(k[i] + " " + v[i]);
}
}
}
【问题讨论】:
-
您是否尝试过单步执行您的代码,看看哪里出了问题?
-
put 方法不起作用,因为数组中没有保存任何内容,并且 count 没有增加
-
您用来调用方法的代码是什么?
-
尝试删除 a 变量并将 if 条件更改为 put 方法中的 if (!found)。
-
这是我的司机:pastie.org/912326