Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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
Java 删除元素Arraylist并在空白处移动_Java_Arraylist - Fatal编程技术网

Java 删除元素Arraylist并在空白处移动

Java 删除元素Arraylist并在空白处移动,java,arraylist,Java,Arraylist,拥有arraylist并希望删除使用.equals传入的元素。删除此对象并在空白区域上移动元素。如果没有元素,我将返回false public boolean remove(E obj) { return false; } 如果要返回布尔值,请执行以下操作: public boolean remove(E obj) { ArrayList<Object> myList = new ArrayList(); for(Object object: myLi

拥有arraylist并希望删除使用.equals传入的元素。删除此对象并在空白区域上移动元素。如果没有元素,我将返回false

public boolean remove(E obj) {

        return false;
    }

如果要返回布尔值,请执行以下操作:

public boolean remove(E obj) {

ArrayList<Object> myList = new ArrayList();

for(Object object: myList){
if(object.equals(obj){
return true;
}}
return false;
}
public ArrayList<Object> remove(E obj) {

ArrayList<Object> myList = new ArrayList();
ArrayList<Object> answerList = new ArrayList();

for(Object object: myList){
if(object.equals(obj){
continue;
}
answerList.add(object);
}
return answerList;
}
如果要返回没有目标的列表,请执行以下操作:

public boolean remove(E obj) {

ArrayList<Object> myList = new ArrayList();

for(Object object: myList){
if(object.equals(obj){
return true;
}}
return false;
}
public ArrayList<Object> remove(E obj) {

ArrayList<Object> myList = new ArrayList();
ArrayList<Object> answerList = new ArrayList();

for(Object object: myList){
if(object.equals(obj){
continue;
}
answerList.add(object);
}
return answerList;
}

从ArrayList中删除某些内容时,其余元素将向左移动以进行填充。由于您的列表可能无法实现某些方法,因此在调用之前将其放置在ArrayList中非常重要

列表=新的ArrayList10、20、30、40、50; //然后,您可以删除该对象。如果删除或删除,则返回true //如果不是,则为false。注意,如果类型对象是一个 //整数,否则它将假定它是一个索引。 System.out.printlnlist.removeObject 120;//打印错误 System.out.printlnlist;//印刷品[10,20,30,40,50] System.out.printlnlist.removeObject 40;//打印正确 System.out.printlnlist;//印刷品[1020,30,50] 希望这有助于:

    public class Application {

    public static void main(String[] args) {
        ListWrapper<String> wrapper = new ListWrapper<>(new ArrayList<>(Arrays.asList("1", "2", "3")));
        wrapper.print();
        System.out.println("REMOVE:" + wrapper.remove("2"));
        wrapper.print();
    }

    public static class ListWrapper<T> {
        private final ArrayList<T> list;

        public ListWrapper(ArrayList<T> list) {
            this.list = list;
        }

        public boolean remove(T obj) {
            boolean removed = list.remove(obj);
            list.trimToSize();
            return removed;
        }

        public void print() {
            System.out.println("LIST: " + list);
        }
    }
}

好啊你尝试过什么?在它被移除后,你如何让它在空的空间上移动?你具体的意思是什么?如果您想在迭代时改变元素的位置,那么这是不可能的。您可以按所需格式创建一个新列表。编译器不允许您在迭代列表时更改列表,您可以对其中的对象执行操作,但不能删除、移动或向当前正在迭代的列表中添加元素。这是因为它会导致无限循环和其他奇怪的问题,幸运的是,只需创建一个新的列表就可以了。