interface Lookup
{
Object find(String name);
}interface EncLookup extends Lookup
{
void add(String name,Object value);
void remove(String name);
}class SimpleEncLookup implements EncLookup
{
private String[] names={"zlf","lzt","wy"};
private Object[] values={46,25,31};
public Object find(String name)
{
for(int i=0;i<names.length;i++)
{
if(names[i].equals(name))
return values[i];
}
return null;
}
public void add(String name,Object value)
{
int len=names.length+1;
String[] tempnames=new String[len];
Object[] tempvalues=new Object[len];
for(int i=0;i<len-1;i++)
{
tempnames[i]=names[i];
tempvalues[i]=values[i];
}
tempnames[len-1]=name;
tempvalues[len-1]=value;
names=tempnames;
values=tempvalues;
}
public void remove(String name)
{
int len=names.length-1;
String[] tempnames=new String[len];
Object[] tempvalues=new Object[len];
for(int i=0;i<len+1;i++)
{
int j=0;
if(!names[i].equals(name))
{
tempnames[j]=names[i];
tempvalues[j]=values[i];
j++;
}
}
names=tempnames;
values=tempvalues;
}
public static void main(String[] args)
{
EncLookup lp = new SimpleEncLookup();
Object o = lp.find("zlf");
System.out.println("Object o="+o);
lp.remove("zlf");
System.out.println("Remove zlf and its value.");
o = lp.find("zlf");
System.out.println("Object o="+o);
lp.add("xzh",45);
System.out.println("Add Name:xzh,Value:45");
o = lp.find("xzh");
System.out.println("Object o="+o);
}
}
提示空指针出现在第20行和第65行。。继续求助各位高手
{
Object find(String name);
}interface EncLookup extends Lookup
{
void add(String name,Object value);
void remove(String name);
}class SimpleEncLookup implements EncLookup
{
private String[] names={"zlf","lzt","wy"};
private Object[] values={46,25,31};
public Object find(String name)
{
for(int i=0;i<names.length;i++)
{
if(names[i].equals(name))
return values[i];
}
return null;
}
public void add(String name,Object value)
{
int len=names.length+1;
String[] tempnames=new String[len];
Object[] tempvalues=new Object[len];
for(int i=0;i<len-1;i++)
{
tempnames[i]=names[i];
tempvalues[i]=values[i];
}
tempnames[len-1]=name;
tempvalues[len-1]=value;
names=tempnames;
values=tempvalues;
}
public void remove(String name)
{
int len=names.length-1;
String[] tempnames=new String[len];
Object[] tempvalues=new Object[len];
for(int i=0;i<len+1;i++)
{
int j=0;
if(!names[i].equals(name))
{
tempnames[j]=names[i];
tempvalues[j]=values[i];
j++;
}
}
names=tempnames;
values=tempvalues;
}
public static void main(String[] args)
{
EncLookup lp = new SimpleEncLookup();
Object o = lp.find("zlf");
System.out.println("Object o="+o);
lp.remove("zlf");
System.out.println("Remove zlf and its value.");
o = lp.find("zlf");
System.out.println("Object o="+o);
lp.add("xzh",45);
System.out.println("Add Name:xzh,Value:45");
o = lp.find("xzh");
System.out.println("Object o="+o);
}
}
提示空指针出现在第20行和第65行。。继续求助各位高手
{
Object find(String name);
}interface EncLookup extends Lookup
{
void add(String name,Object value);
void remove(String name);
}class SimpleEncLookup implements EncLookup
{
private String[] names={"zlf","lzt","wy"};
private Object[] values={46,25,31};
public Object find(String name)
{
for(int i=0;i<names.length;i++)
{
if(names[i].equals(name))
return values[i];
}
return null;
}
public void add(String name,Object value)
{
int len=names.length+1;
String[] tempnames=new String[len];
Object[] tempvalues=new Object[len];
for(int i=0;i<len-1;i++)
{
tempnames[i]=names[i];
tempvalues[i]=values[i];
}
tempnames[len-1]=name;
tempvalues[len-1]=value;
names=tempnames;
values=tempvalues;
}
public void remove(String name)
{
int len=names.length-1;
String[] tempnames=new String[len];
Object[] tempvalues=new Object[len];
for(int i=0;i<len+1;i++)
{
int j=0;
if(!names[i].equals(name))
{
tempnames[j]=names[i];
tempvalues[j]=values[i];
j++;
}
}
names=tempnames;
values=tempvalues;
}
public static void main(String[] args)
{
EncLookup lp = new SimpleEncLookup();
Object o = lp.find("zlf");
System.out.println("Object o="+o);
lp.remove("zlf");
System.out.println("Remove zlf and its value.");
o = lp.find("zlf");
System.out.println("Object o="+o);
lp.add("xzh",45);
System.out.println("Add Name:xzh,Value:45");
o = lp.find("xzh");
System.out.println("Object o="+o);
}
}
{
Object find(String name);
}interface EncLookup extends Lookup
{
void add(String name,Object value);
void remove(String name);
}class SimpleEncLookup implements EncLookup
{
private String[] names={"zlf","lzt","wy"};
private Object[] values={46,25,31};
public Object find(String name)
{
for(int i=0;i<names.length;i++)
{
if(names[i].equals(name))
return values[i];
}
return null;
}
public void add(String name,Object value)
{
int len=names.length+1;
String[] tempnames=new String[len];
Object[] tempvalues=new Object[len];
for(int i=0;i<len-1;i++)
{
tempnames[i]=names[i];
tempvalues[i]=values[i];
}
tempnames[len-1]=name;
tempvalues[len-1]=value;
names=tempnames;
values=tempvalues;
}
public void remove(String name)
{
int len=names.length-1;
String[] tempnames=new String[len];
Object[] tempvalues=new Object[len];
for(int i=0;i<len+1;i++)
{
int j=0;
if(!names[i].equals(name))
{
tempnames[j]=names[i];
tempvalues[j]=values[i];
j++;
}
}
names=tempnames;
values=tempvalues;
}
public static void main(String[] args)
{
EncLookup lp = new SimpleEncLookup();
Object o = lp.find("zlf");
System.out.println("Object o="+o);
lp.remove("zlf");
System.out.println("Remove zlf and its value.");
o = lp.find("zlf");
System.out.println("Object o="+o);
lp.add("xzh",45);
System.out.println("Add Name:xzh,Value:45");
o = lp.find("xzh");
System.out.println("Object o="+o);
}
}
{
int j=0;
if(!names[i].equals(name))
{
tempnames[j]=names[i];
tempvalues[j]=values[i];
j++;
}
}
这个循环里面有问题,j=0位置不对,导致j++之后下一次循环j又成0了