Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Java如何正确地从列表中删除int?_Java_Android_List_Arraylist - Fatal编程技术网

Android Java如何正确地从列表中删除int?

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

目前,我正在尝试编写一个代码,将创建一个列表从各种点坐标,然后删除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();
    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));