在android中从mainarraylist中删除子阵列列表

在android中从mainarraylist中删除子阵列列表,android,Android,我使用的是安卓2.3.3。我有一个mainArrayList,还有一个子数组列表,其中的内容是mainArrayList的一部分。我希望从mainArrayList中删除此子阵列列表 我该怎么做 我尝试使用almanaraylist.remove(alSubArrayList)。但它不起作用。有人能帮我吗 例: almanaraylist=[1,+,(,2,*,(,3,+,4,),),)] alSubArrayList=[(3,+,4,)] 有关更多信息,我正在开发一个计算器应用程序,其中我在

我使用的是安卓2.3.3。我有一个
mainArrayList
,还有一个
子数组列表
,其中的内容是
mainArrayList
的一部分。我希望从
mainArrayList
中删除此
子阵列列表

我该怎么做

我尝试使用
almanaraylist.remove(alSubArrayList)
。但它不起作用。有人能帮我吗

例:

almanaraylist=[1,+,(,2,*,(,3,+,4,),),)]
alSubArrayList=[(3,+,4,)]
有关更多信息,我正在开发一个计算器应用程序,其中我在
ArrayList AlmanaryList
中有给定的表达式。在执行子表达式的求值之后,我希望将其从Alminarray列表中删除,然后在指定索引处将结果插入其中。守则符合规定

问题是,当我使用
alSubArrayList.remove(alSubArrayList)
或甚至
alSubArrayList.removeAll(alSubArrayList)
时,alSubArrayList中的子表达式不会被删除

它是一个循环,因此结果被添加到指定的索引处(无需首先删除子数组列表),循环进入无限循环


要提供代码片段,有点困难。它们到处都是碎片。因此,如果有人理解了我想说的话,请帮助我。

您给出的代码告诉Java从
AlmanarrayList
中删除对列表的引用。如果
almainaraylist
真的声明为
List
ArrayList我已经找到了ArrayList的方法subList(),那么这甚至不应该编译

以下是您将其放置在方法上时根据帮助提供的信息

子列表()::用于ArrayList

将此列表的一部分连续元素作为视图返回。如果start等于end,则返回的视图长度为零。返回的子列表中发生的任何更改都将反映到原始列表中,反之亦然。此子列表还支持原始列表支持的所有可选操作

此方法可用作对原始列表的子范围执行某些操作的简便方法,例如list.subList(from,to).clear()

如果原始列表不是通过返回的子列表进行修改,则返回的子列表的行为将变得未定义

返回的子列表是AbstractList的子类。子类存储原始列表的偏移量、自身大小和modCount。如果原始列表实现了RandomAccess接口,则返回的子列表也实现了RandomAccess接口

子列表的set(int,Object)、get(int)、add(int,Object)、remove(int)、addAll(int,Collection)和removeRange(int,int)方法首先检查边界,调整偏移量,然后调用原始AbstractList的相应方法。返回子列表的addAll(Collection c)方法调用原始addAll(offset+size,c)

子列表的listIterator(int)方法包装原始列表迭代器。子列表的迭代器()方法调用原始的listIterator()方法,size()方法仅返回子列表的大小

如果原始列表的modCount不等于预期值,则所有方法都将抛出ConcurrentModificationException

参数 子列表的开始索引(包括)。 子列表的结束索引(独占)

返回 此列表的子列表视图,从开始(包含)开始,以结束(独占)结束 投掷 IndexOutOfBoundsException if(开始<0 | |结束>大小())
IllegalArgumentException如果(开始>结束)

什么不起作用?编译你给出的代码时会发生什么?没有错误。但当我运行应用程序时,Almanarray列表保持不变。仅供参考,您应该在问题中使用正确的Java语法。一小段我们可以编译的代码会很有帮助。有关一些提示,请参阅。我无法添加代码段,因为它是不同函数的一部分。我已经编辑了这个问题,你能再检查一遍吗?@vamsichilla你试过我的建议了吗?你读过我链接的那篇文章吗?@VamsiChalla当我在这里提问时,我发现从头开始编写一个新的程序来重现问题是有帮助的。这至少有两个好处:1)我的注意力集中在真正的问题上,这样我就可以更容易地向别人解释它;2)有时我自己会想出解决办法。好的。。我试过你的建议了。它不起作用。我会阅读文档,然后再给你回复。@VamsiChalla我建议你编写一个小的(新的)程序,重新创建你遇到的问题。张贴在这里,我们可以从那里提供帮助。此信息+1。此外,如果您要在未经认真考虑的情况下修改
ListView
中的大量元素,请不要将子列表用作
ListAdapter
的内容-ConcurrentModificationException是有保证的。
alMainArrayList<String> = [1,+,(,2,*,(,3,+,4,),),)]
alSubArrayList<String> = [(,3,+,4,)]