问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java list怎么删除元素

发布网友 发布时间:2022-04-22 06:53

我来回答

3个回答

懂视网 时间:2022-04-18 08:14

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-04-18 05:22

如果是删除指定元素则如下:
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--;

}

1、for循环遍历list
for(int i=0;i<list.size();i++){
if(list.get(i).equals("del"))
list.remove(i);
}

这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,所以会导致你在遍历的时候漏掉某些元素。比如当你删除第1个元素后,继续根据索引访问第2个元素时,因为删除的关系后面的元素都往前移动了一位,所以实际访问的是第3个元素。因此,这种方式可以用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用。

2、增强for循环
for(String x:list){
if(x.equals("del"))
list.remove(x);
}

这种方式的问题在于,删除元素后继续循环会报错误信息ConcurrentModificationException,因为元素在使用的时候发生了并发的修改,导致异常抛出。但是删除完毕马上使用break跳出,则不会触发报错。

3、iterator遍历

Iterator<String> it = list.iterator();
while(it.hasNext()){
String x = it.next();
if(x.equals("del")){
it.remove();
}
}

}
希望可以帮到你。

热心网友 时间:2022-04-18 06:40

list.remove(int index)//index为要删除的元素的下标
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
四开大门要多少宽度 四开大门尺寸多少 大门四开门尺寸是多少 秦昊新剧《亲爱的小孩》网上褒贬不一,你觉得这部剧是否符合现实呢? 《亲爱的小孩》妻子产后失禁,丈夫嫌弃反复洗手,你怎么看? 求推荐一个安卓手机文档管理工具吧,手机实在太乱了,也没有介绍的? 手机文件管理器哪个好用 隐私文件夹app哪个好用 泰山茶年产600吨品牌近40个销售额达5亿元 山东茶叶品牌 山东茶叶厂家 山东有哪些茶叶品牌【品牌库】 从广延路到真如中学如何走? 茄子怎么去皮 很多网站连载起点站的小说,提供免费阅读,比如笔... TR是什么 符号 VC如何把List中的内容全部清空 茄子要不要吃皮? TR是什么意思 vb 6.0 如何清空list 中所有内容 黑岩大相师第53章免费阅读 怎么将arrayList中的数据全部清除 茄子怎么去皮的妙招 VB中list怎么清空?最好把list各个属性都说一下··· 线性代数中的Tr表示什么意思? vb中怎样清空下拉列表框中的内容(list里面的) 小细长茄子用削皮吗 林清玄散文在线阅读 哪里有《神墓》在线免费阅读啊? 日月如移越少年全文免费阅读资源哪里有? 《男神总是那么不要脸》txt下载在线阅读全文,求百... 《你是长夜,也是灯火》txt下载在线阅读全文,求百... 过去老式的抽油烟机的油网如何清理 tr是什么 list如何删除多余size 最近不知道怎么迷上了玄幻小说,上次好像输错网址... 新买的冰箱要不要清洗 tr叫什么,作用? C#中如何清空全局的list 查理九世免费阅读 新买的冰箱要用水清洗一下再用吗? 线性代数中tr(A,B)是什么意思? 花都赘婿沈炼免费阅读 怎么实现对List&lt;Map&lt;String, Object&gt;&gt;内容的清空 线性代数中tr(A)是什么意思 新冰箱没清洗就用会不会有有毒气体 无犯罪记录证明格式? 求文档: 查理九世在线阅读 家里的冰箱一次都没有清洗过,请问这样会不会有问... 无犯罪记录证明的认证 tr在线性代数中什么 java 如何清空list 求个好用无毒无弹窗无广告的播放器。像pps这种垃圾...