Android Java如何正确地从列表中删除int?
目前,我正在尝试编写一个代码,将创建一个列表从各种点坐标,然后删除3个最小的整数从列表中。当我运行应用程序时,它崩溃了。我发现我发生在移除部分。我已经研究了其他类似的线程,但解决方案与我的类似。以下是我的代码:Android Java如何正确地从列表中删除int?,java,android,list,arraylist,Java,Android,List,Arraylist,目前,我正在尝试编写一个代码,将创建一个列表从各种点坐标,然后删除3个最小的整数从列表中。当我运行应用程序时,它崩溃了。我发现我发生在移除部分。我已经研究了其他类似的线程,但解决方案与我的类似。以下是我的代码: List<Integer> XPoint = Arrays.asList(A.x, B.x, C.x, D.x, E.x, F.x, G.x, K.x); List<Integer> XPLeft = Arrays.asList(); in
List<Integer> XPoint = Arrays.asList(A.x, B.x, C.x, D.x, E.x, F.x, G.x, K.x);
List<Integer> XPLeft = Arrays.asList();
int XPLeftTimes = 0;
//Find 3 min X values(left)
while(XPLeftTimes != 2){
int Left = Collections.min(XPoint);
XPoint.remove(Left); <-App crashes here
XPLeft.add(Left);
XPLeftTimes++;
}
List XPoint=Arrays.asList(A.x、B.x、C.x、D.x、E.x、F.x、G.x、K.x);
List XPLeft=Arrays.asList();
int XPLeftTimes=0;
//查找3个最小X值(左)
while(XPLeftTimes!=2){
int Left=Collections.min(XPoint);
expoint.remove(左);Arrays.asList()返回由指定数组支持的固定大小的列表
试一试
List xPoint=newarraylist(Arrays.asList(A.x、B.x、C.x、D.x、E.x、F.x、G.x、K.x));
当您调用XPoint.remove(左);
它不是删除该部分,而是删除索引中存储的任何值(等于左),这就是为什么如果要删除该数字,它会崩溃的原因尝试此操作
XPoint.remove(new Integer(left));
asList()返回无法修改的固定大小数组。
如果要修改它,必须通过复制其内容来创建新的可修改Arraylist,如下所示:
List XPoint = new ArrayList(Arrays.asList(A.x, B.x, C.x, D.x, E.x, F.x, G.x, K.x));
List XPLeft=new ArrayList()
这应该可以工作。asList返回指定数组中对象的列表。列表的大小不能修改,即不支持添加和删除,但可以设置元素。设置元素会修改基础数组。谢谢。不过我使用了Integer.valueOf(左)。欢迎,需要更多帮助,只需说
List XPoint = new ArrayList(Arrays.asList(A.x, B.x, C.x, D.x, E.x, F.x, G.x, K.x));