获取后,从ArrayList中删除元素

时间:2016-11-24 19:29:33

标签: java arraylist collections

我有一个方法,它接受ArrayList的第一个元素并将其放入另一个ArrayList。

让我们说A = {1,2,3}和C = {}

在getStudent()方法之后,我的列表现在看起来像这样:

A = {1,2,3}且C = {1}

有没有办法,使用ArrayLists,一旦传递给C,1就会从列表A中消失?

我的代码:

public Disk getStudent() {

// so it gives me element 0
    Student topStudent = studentCollection.get(studentCollection.size() - studentCollection.size());
    return topStudent;
}

我知道你可以用堆栈做类似的事情,但我需要这个特殊的部分是一个ArrayList。

5 个答案:

答案 0 :(得分:2)

代替get,使用remove

另外,请注意,通过从自身中减去集合的大小,您得到0,因此编写以下内容更简单:

studentCollection.remove(0);

答案 1 :(得分:1)

是否线性发生?如果是这样,您可以使用堆栈或队列分别弹出或出列,然后将结果添加到新列表中。否则,您将要进行三项操作 - 存储来自studentCollection的值,将其从studentCollection中删除,然后将该值添加到新列表中。

答案 2 :(得分:0)

如果函数返回一个对象,则可以使用它从ArrayList

中删除该元素
yourArrayList.remove(getStudent());

答案 3 :(得分:0)

你有两种方法可以实现这个目标

  1. 使用class Comp extends React.Component { render() { let day = this._theDay(this.props.day) return <div key={day}>{day}</div>; } } 删除元素后将其添加到其他列表中。

  2. 使用List.remove(0)代替queue列表。这样你可以做类似的事情 - list

答案 4 :(得分:0)

您可以定义自定义get方法,在返回之前从列表中删除元素。

例如:

public Student getFrstStudentFromList(){
    if(studentCollection.size()!=0){
        Student topStudent = studentCollection.get(0);
        studentCollection.remove(topStudent); // or studentCollection.remove(0);
        return topStudent;
    }
    return null;
}

另一种方式

ArrayList<Student> list1 = new ArrayList<>();
ArrayList<Student> list2 = new ArrayList<>();
list1.add(new Student("Student 1"));
list1.add(new Student("Student 2"));
list1.add(new Student("Student 3"));

moveFrstElementFromList1ToList2(list1,list2);

public static void moveFrstElementFromList1ToList2(ArrayList<Student> l1, ArrayList<Student> l2){
    if(l1.size()!=0){
        l2.add(l1.get(0));
        l1.remove(0);
    }
}

我希望这可以帮到你