java 怎么删除List中的指定元素

发布网友 发布时间:2022-04-21 00:08

我来回答

12个回答

懂视网 时间:2022-05-10 09:11

list中删除某个元素的方法有三种

1.remove: 删除单个元素,删除首个符合条件的元素,按值删除

举例说明:

>>> str=[1,2,3,4,5,2,6]
>>> str.remove(2)
>>> str
[1, 3, 4, 5, 2, 6]

2.pop: 删除单个或多个元素,按位删除(根据索引删除)

>>> str=[0,1,2,3,4,5,6]
>>> str.pop(1) #pop删除时会返回被删除的元素
>>> str
[0, 2, 3, 4, 5, 6]
>>> str2=['abc','bcd','dce']
>>> str2.pop(2)
'dce'
>>> str2
['abc', 'bcd']

3.del:它是根据索引(元素所在位置)来删除

举例说明:

>>> str=[1,2,3,4,5,2,6]
>>> del str[1]
>>> str
[1, 3, 4, 5, 2, 6]
>>> str2=['abc','bcd','dce']
>>> del str2[1]
>>> str2
['abc', 'dce']

除此之外,del还可以删除指定范围内的值。

>>> str=[0,1,2,3,4,5,6]
>>> del str[2:4] #删除从第2个元素开始,到第4个为止的元素(但是不包括尾部元素)
>>> str
[0, 1, 4, 5, 6]

del 也可以删除整个数据对象(列表、集合等)

>>> str=[0,1,2,3,4,5,6]
>>> del str
>>> str  #删除后,找不到对象
 
Traceback (most recent call last):
 File "<pyshell#27>", line 1, in <module>
 str
NameError: name 'str' is not defined

注意:del是删除引用(变量)而不是删除对象(数据),对象由自动垃圾回收机制(GC)删除。

补充: 删除元素的变相方法

s1=(1,2,3,4,5,6)
s2=(2,3,5)
s3=[]
for i in s1:
if i not in s2:
 s3.append(i)
print 's1-1:',s1
s1=s3
print 's2:',s2
print 's3:',s3
print 's1-2:',s1

热心网友 时间:2022-05-10 06:19

主要有三种方法:

用一个List 记录要删除的数据,最后removeAll(List);

用for循环遍历,原始书写方式;

用迭代器自带的remove方法,这也是官方推荐的方法。

热心网友 时间:2022-05-10 07:37

从list中删除指定元素可以使用remove方法来实现:

ArrayList al = new ArrayList(); 
 
al.add("a"); 
 
al.add("b"); 
 
//al.add("b"); 
 
//al.add("c"); 
 
//al.add("d"); 
 
for (int i = 0; i < al.size(); i++) { 
 
if (al.get(i) == "b") { 
 
al.remove(i); 
 
i--; 
 

 
}

在代码中,删除元素后,需要把下标减一。这是因为在每次删除元素后,ArrayList会将后面部分的元素依次往上挪一个位置(就是copy),所以,下一个需要访问的下标还是当前下标,所以必须得减一才能把所有元素都遍历完。

热心网友 时间:2022-05-10 09:12

亲们:多个制定元素标准方法如下。
public class test {
public static void main(String[] args) {
String str="部,部,机关1,机关2,基层1,基层2";
String[] arr=str.split(",");
List<String> list=Lists.newArrayList(arr);
Iterator<String> it=list.iterator();
while(it.hasNext()) {
String x = it.next();//这部绝对不能省略,it.next()在while里面执行的一次的时候只能调用一次,多次调用就不对了
if(x.equals("部")) {
System.out.println(x);
it.remove();
}
if(x.equals("机关1")) {
System.out.println(x);
it.remove();
}
}
System.out.println(list.size());
}
}

热心网友 时间:2022-05-10 11:03

Java 循环删除list中指定元素

1.for循环遍历删除指定元素
2.增强for循环删除指定元素
3.iterator删除指定元素

热心网友 时间:2022-05-10 13:11

既然你不知道他的位置

用个for循环吧 int i ;int j=list.size() 然后循环的遍历list里面的值,在for循环里面搞个if判断
判断条件就是if(Arraylist(i)=="o")
{
Arraylist.remove(i)
}
能明白我的意思吗?

热心网友 时间:2022-05-10 15:36

都2020年了, 这样写吧

list.removeIf(obj->obj.equals("o"));

热心网友 时间:2022-05-10 18:17

while(list.contains("0"))
list.remove("0");
System.out.println(list.toString());//到此为止,所有的0都被删除了

热心网友 时间:2022-05-10 21:15

for (int i = 0; i < list.size(); i++) {
if("o"equals(list.get(i).toString)){
list.remove(get(i));
//list.remove(i);
}
}

热心网友 时间:2022-05-11 00:30

List list=new ArrayList();
list.remove(index);追问我试了一下,只删除了一个,我是想删除所有 "o",而且我不知道有几个

追答那就遍历一下,
for(int i=0;i<list.size();i++)
{
if(list.get(i).equals("0"))
list.remove(i);
}

热心网友 时间:2022-05-11 04:01

看API Boolean remove(Object obj)
list.remove("o");

热心网友 时间:2022-05-11 07:49

if (al.get(i) . equals("b") )

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com