Java 获取元素后将其从ArrayList中移除
我有一个方法,它获取ArrayList的第一个元素并将其放入另一个ArrayList 假设A={1,2,3}和C={} 在方法getStudent()之后,我的列表现在如下所示: A={1,2,3}和C={1} 有没有一种方法,使用ArrayList,让1在传递给C后立即从列表a中消失 我的代码:Java 获取元素后将其从ArrayList中移除,java,arraylist,collections,Java,Arraylist,Collections,我有一个方法,它获取ArrayList的第一个元素并将其放入另一个ArrayList 假设A={1,2,3}和C={} 在方法getStudent()之后,我的列表现在如下所示: A={1,2,3}和C={1} 有没有一种方法,使用ArrayList,让1在传递给C后立即从列表a中消失 我的代码: public Disk getStudent() { // so it gives me element 0 Student topStudent = studentCollection.g
public Disk getStudent() {
// so it gives me element 0
Student topStudent = studentCollection.get(studentCollection.size() - studentCollection.size());
return topStudent;
}
我知道你可以用stack做类似的事情,但我需要这个特殊的片段作为ArrayList。使用它来代替
get
另外,请注意,通过从集合本身中减去集合的大小,得到的值为0,因此编写以下内容更简单:
studentCollection.remove(0);
代替
get
,使用
另外,请注意,通过从集合本身中减去集合的大小,得到的值为0,因此编写以下内容更简单:
studentCollection.remove(0);
它是线性发生的吗?如果是这样,您可以分别使用堆栈或队列和pop或dequeue,然后将结果添加到新列表中。否则,您将需要执行三个操作—存储studentCollection中的值,将其从studentCollection中删除,然后将该值添加到新列表中。它是线性发生的吗?如果是这样,您可以分别使用堆栈或队列和pop或dequeue,然后将结果添加到新列表中。否则,您将需要执行三个操作—存储studentCollection中的值,将其从studentCollection中删除,然后将值添加到新列表中。如果函数返回一个对象,您可以使用它从ArrayList中删除该元素
yourArrayList.remove(getStudent());
如果函数返回一个对象,可以使用它从ArrayList中删除该元素
yourArrayList.remove(getStudent());
你有两种方法来实现这一点
List.remove(0)
在获取元素并将其添加到另一个列表后删除该元素队列
而不是列表
。这样,您就可以执行类似-C.add(A.poll())
你有两种方法来实现这一点
List.remove(0)
在获取元素并将其添加到另一个列表后删除该元素队列
而不是列表
。这样,您就可以执行类似-C.add(A.poll())
您可以定义自定义的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);
}
}
ArrayList list1=新的ArrayList();
ArrayList list2=新的ArrayList();
列表1.添加(新学生(“学生1”));
列表1.添加(新学生(“学生2”));
列表1.添加(新学生(“学生3”));
从列表1列表2(列表1、列表2)移动FRSTELEment2;
public static void moveFrstElementFromList1ToList2(ArrayList l1,ArrayList l2){
如果(l1.size()!=0){
l2.add(l1.get(0));
l1.移除(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);
}
}
ArrayList list1=新的ArrayList();
ArrayList list2=新的ArrayList();
列表1.添加(新学生(“学生1”));
列表1.添加(新学生(“学生2”));
列表1.添加(新学生(“学生3”));
从列表1列表2(列表1、列表2)移动FRSTELEment2;
public static void moveFrstElementFromList1ToList2(ArrayList l1,ArrayList l2){
如果(l1.size()!=0){
l2.add(l1.get(0));
l1.移除(0);
}
}
我希望这能对你有所帮助谢谢,这帮了大忙。@Ahm:不客气。因为你似乎对这些部分不熟悉,当有人满意地回答你的问题而不是在评论中说“谢谢”时。不过还是欢迎你。谢谢,这帮了大忙。@Ahm:不客气。因为你似乎对这些部分不熟悉,当有人满意地回答你的问题而不是在评论中说“谢谢”时。但还是欢迎你。