我正在尝试创建一个方法,将给定值放在数组中的某个位置。
这是我的代码。增加的是一个使数组存储长度加倍的函数。
我的问题不在于增加功能。
我遇到的问题是,当我在索引中放置一个值时,先前删除的值是我想要保留的值,同时保留我放在索引中的值。 / p>
public void addLoc (int index , Object obj)
{
if(store.length - size <=4)
{
store=increase(store);
}
store[index]=obj;
size++;
}
说我的数组是
4 5 7 11 12 13
我说替换3号位置是什么,我得到
4 3 7 11 12 13
但我想要的是
4 3 5 7 11 12 13
答案 0 :(得分:0)
尝试使您的方法基于<= 4
数组,而不是使用幻数(store
)。此外,您似乎正在尝试使该类自动扩展,如果您正在这样做,那么我认为您应该考虑使用Map
而不是数组(如果我想要一个对象怎么办?在索引0和99999?)。
答案 1 :(得分:0)
使用System.arrayCopy将原始数组中的内容复制到新创建的(较大的)数组中。
答案 2 :(得分:0)
你说你的双数组大小有效,然后从你想要放置新元素的索引处开始,从那里开始并将所有内容移动到一个位置,然后将新元素添加到你想要的位置。