Java 删除ArrayList中最右边的元素
我想删除列表中最右边的一半,但这段代码有时还可以,但其他时间不行 如果l包含Java 删除ArrayList中最右边的元素,java,arrays,methods,removeall,Java,Arrays,Methods,Removeall,我想删除列表中最右边的一半,但这段代码有时还可以,但其他时间不行 如果l包含A→ B→ C→ D→ E,然后在调用 l.removightmosthalf(),l变为A→ B→ C public void removeRightmostHalf() { if (size % 2 != 0) { current = (size / 2) + 1; while(current <= size) { for (int i = current + 1;
A→ B→ C→ D→ E
,然后在调用
l.removightmosthalf()
,l变为A→ B→ C
public void removeRightmostHalf() {
if (size % 2 != 0)
{
current = (size / 2) + 1;
while(current <= size)
{
for (int i = current + 1; i < size; i++)
nodes[i-1] = nodes[i];
size--;
if (size == 0)
current = -1;
else if (current == size)
current = 0;
}
}
else
{
current = (size / 2);
while(current <= size)
{
for (int i = current + 1; i < size; i++)
nodes[i-1] = nodes[i];
size--;
if (size == 0)
current = -1;
else if (current == size)
current = 0;
}
}
}
public void-removeRightmostHalf(){
如果(大小%2!=0)
{
电流=(尺寸/2)+1;
虽然(当前此代码将完成此工作,请尝试并告诉我。
如果我的答案对你是正确的,请不要忘记选择它作为正确的答案
public void removeRightmostHalf() {
if (size % 2 != 0)
size=(size / 2)+1;
else size=(size / 2);
}
这是怎么工作的?
因为问题是删除右半部分以便将大小减小到一半,这将使数组的右半部分无法访问,就像Arraylist.Remove()所做的一样。@geoffrey,因为她从Remove()复制了许多内容方法,在这里没有任何意义,她也没有问为什么/what@geoffrey去提交你的答案吧,没人能接受you@geoffrey如果数组列表包含A,B,C,D,E,你的方法将使其成为A,B你确实删除了最后3个元素,这不是她解释的。看看她的例子,如果元素像5一样奇数,你删除了last2@geoffrey我在Eclipse上对它进行了多次测试,但它并没有按照她的要求做for@geoffrey您已多次编辑答案,但仍然不起作用,在上一个答案中,它会显示所有元素
public void removeRightmostHalf()
{
if (size % 2 != 0)
current = (size / 2) + 1;
else
current=size/2;
nodes.subList(current,size).clear()
}