Java 从ArrayList中删除项
我有一个Java 从ArrayList中删除项,java,arraylist,Java,Arraylist,我有一个数组列表假设列表,它有8个项目A-H,现在我想从列表中删除存储在int数组中的1,3,5位置项目。我该怎么做 我正试着和你一起做这件事 ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); list.add("E"); list.add("F"); list.add("G"); list.add("H
数组列表
假设列表
,它有8个项目A-H,现在我想从列表
中删除存储在int数组中的1,3,5位置项目。我该怎么做
我正试着和你一起做这件事
ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
list.add("G");
list.add("H");
int i[] = {1,3,5};
for (int j = 0; j < i.length; j++) {
list.remove(i[j]);
}
ArrayList list=new ArrayList();
列表。添加(“A”);
列表。添加(“B”);
列表。添加(“C”);
列表。添加(“D”);
列表。添加(“E”);
列表。添加(“F”);
列表。添加(“G”);
列表。添加(“H”);
int i[]={1,3,5};
对于(int j=0;j
但在数组的第一个被删除的项被更改之后,在下一次迭代中它删除了错误的元素或给出异常 在这种特定情况下,应该按降序删除元素。首先索引5
,然后索引3
,然后索引1
。这将从列表中删除元素,而不会产生不良的副作用
for (int j = i.length-1; j >= 0; j--) {
list.remove(i[j]);
}
在这种特定情况下,应按降序删除元素。首先索引5
,然后索引3
,然后索引1
。这将从列表中删除元素,而不会产生不良的副作用
for (int j = i.length-1; j >= 0; j--) {
list.remove(i[j]);
}
String[]mString=新字符串[]{“B”、“D”、“F”};
对于(int j=0;j
String[]mString=新字符串[]{“B”、“D”、“F”};
对于(int j=0;j
这个怎么样?想一想-
import java.util.ArrayList;
class Solution
{
public static void main (String[] args){
ArrayList<String> List_Of_Array = new ArrayList<String>();
List_Of_Array.add("A");
List_Of_Array.add("B");
List_Of_Array.add("C");
List_Of_Array.add("D");
List_Of_Array.add("E");
List_Of_Array.add("F");
List_Of_Array.add("G");
List_Of_Array.add("H");
int i[] = {1,3,5};
for (int j = 0; j < i.length; j++) {
List_Of_Array.remove(i[j]-j);
}
System.out.println(List_Of_Array);
}
}
这个怎么样?想一想-
import java.util.ArrayList;
class Solution
{
public static void main (String[] args){
ArrayList<String> List_Of_Array = new ArrayList<String>();
List_Of_Array.add("A");
List_Of_Array.add("B");
List_Of_Array.add("C");
List_Of_Array.add("D");
List_Of_Array.add("E");
List_Of_Array.add("F");
List_Of_Array.add("G");
List_Of_Array.add("H");
int i[] = {1,3,5};
for (int j = 0; j < i.length; j++) {
List_Of_Array.remove(i[j]-j);
}
System.out.println(List_Of_Array);
}
}
您可以使用
ListIterator
从ArrayList
中删除元素
ListIterator listIterator = List_Of_Array.listIterator();
/* Use void remove() method of ListIterator to remove an element from List.
It removes the last element returned by next or previous methods.
*/
listIterator.next();
//remove element returned by last next method
listIterator.remove();//remove element at 1st position
listIterator.next();
listIterator.next();
listIterator.remove();//remove element at 3rd position
listIterator.next();
listIterator.next();
listIterator.remove();//remove element at 5th position
您可以使用
ListIterator
从ArrayList
中删除元素
ListIterator listIterator = List_Of_Array.listIterator();
/* Use void remove() method of ListIterator to remove an element from List.
It removes the last element returned by next or previous methods.
*/
listIterator.next();
//remove element returned by last next method
listIterator.remove();//remove element at 1st position
listIterator.next();
listIterator.next();
listIterator.remove();//remove element at 3rd position
listIterator.next();
listIterator.next();
listIterator.remove();//remove element at 5th position
这样试试看
ArrayList<String> List_Of_Array = new ArrayList<String>();
List_Of_Array.add("A");
List_Of_Array.add("B");
List_Of_Array.add("C");
List_Of_Array.add("D");
List_Of_Array.add("E");
List_Of_Array.add("F");
List_Of_Array.add("G");
List_Of_Array.add("H");
int i[] = {5,3,1};
for (int j = 0; j < i.length; j++) {
List_Of_Array.remove(i[j]);
}
ArrayList List_Of_Array=new ArrayList();
列出_数组的_。添加(“A”);
数组的列表。添加(“B”);
数组的列表。添加(“C”);
数组的列表。添加(“D”);
数组的列表。添加(“E”);
数组的列表。添加(“F”);
数组的列表。添加(“G”);
列出_数组的_。添加(“H”);
int i[]={5,3,1};
对于(int j=0;j
这样试试看
ArrayList<String> List_Of_Array = new ArrayList<String>();
List_Of_Array.add("A");
List_Of_Array.add("B");
List_Of_Array.add("C");
List_Of_Array.add("D");
List_Of_Array.add("E");
List_Of_Array.add("F");
List_Of_Array.add("G");
List_Of_Array.add("H");
int i[] = {5,3,1};
for (int j = 0; j < i.length; j++) {
List_Of_Array.remove(i[j]);
}
ArrayList List_Of_Array=new ArrayList();
列出_数组的_。添加(“A”);
数组的列表。添加(“B”);
数组的列表。添加(“C”);
数组的列表。添加(“D”);
数组的列表。添加(“E”);
数组的列表。添加(“F”);
数组的列表。添加(“G”);
列出_数组的_。添加(“H”);
int i[]={5,3,1};
对于(int j=0;j
公共void DeleteUserIMP(UserIMP useriamp){
已同步(ListUserIMP){
if(ListUserIMP.isEmpty()){
System.out.println(“用户为空”);
}否则{
迭代器it=ListUserIMP.Iterator();
while(it.hasNext()){
UserIMP user=it.next();
if(useriamp.getMoblieNumber().equals(user.getMoblieNumber())){
it.remove();
System.out.println(“删除它”);
}
}
//ListUserIMP.remove(useriamp);
System.out.println(“此用户已删除”);
}
Constants.RESULT\u用于注册=Constants.MESSAGE\u OK;
//System.out.println(“此用户已删除”+常量。消息\u确定);
}
}
公共void DeleteUserIMP(UserIMP useriamp){
已同步(ListUserIMP){
if(ListUserIMP.isEmpty()){
System.out.println(“用户为空”);
}否则{
迭代器it=ListUserIMP.Iterator();
while(it.hasNext()){
UserIMP user=it.next();
if(useriamp.getMoblieNumber().equals(user.getMoblieNumber())){
it.remove();
System.out.println(“删除它”);
}
}
//ListUserIMP.remove(useriamp);
System.out.println(“此用户已删除”);
}
Constants.RESULT\u用于注册=Constants.MESSAGE\u OK;
//System.out.println(“此用户已删除”+常量。消息\u确定);
}
}
如果使用“=”,则会在第二个列表中为原始arraylist创建一个副本,但引用是相同的,因此如果在一个列表中更改,另一个列表也会被修改。使用此选项而不是“=”
如果使用“=”,则会在第二个列表中为原始arraylist创建一个副本,但引用是相同的,因此如果在一个列表中更改,另一个列表也会被修改。使用此选项而不是“=”
如前所述
iterator.remove()
这可能是在循环过程中删除列表项的唯一安全方法
为了更深入地理解使用迭代器删除项,请尝试查看前面提到的
iterator.remove()
这可能是在循环过程中删除列表项的唯一安全方法
为了更深入地理解使用迭代器删除项,请尝试查看arraylist的这个remove(int-index)方法删除列表中指定位置(index)的元素。删除arraylist项后,将所有后续元素向左移动
表示如果arraylist包含{20,15,30,40}
我已经调用了方法:arraylist.remove(1)
然后数据15将被删除,30和40这两个项目将左移1
因此,必须先删除arraylist的较高索引项
所以..对于给定的情况..代码将是
ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
list.add("G");
list.add("H");
int i[] = {1,3,5};
for (int j = i.length-1; j >= 0; j--) {
list.remove(i[j]);
}
ArrayList list=new ArrayList();
列表。添加(“A”);
列表。添加(“B”);
列表。添加(“C”);
列表。添加(“D”);
列表。添加(“E”);
列表。添加(“F”);
列表。添加(“G”);
列表。添加(“H”);
int i[]={1,3,5};
对于(int j=i.length-1;j>=0;j--){
删除(i[j]);
}
arraylist的remove(int-index)方法删除列表中指定位置(index)的元素。删除arraylist项后,将所有后续元素向左移动
表示如果arraylist包含{20,15,30,40}
我已经调用了方法:arraylist.remove(1)
然后数据15将被删除,30和40这两个项目将左移1
因此,您必须删除更高的索引项
if(yourList.size() != 0){
yourList.remove(yourList.size()-1);
}
if(selected){// boolean for checked add or remove
yourList.add(position , id); // add to list by position can use your list position
}else{
if(yourList.size() != 0){
yourList.remove(position);
}
}