递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 6361|回复: 8
打印 上一主题 下一主题

[视窗] 在哈希表循环内部删除成员会报错,怎么破?

[复制链接]

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
跳转到指定楼层
楼主
发表于 2021-6-22 17:00:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

在哈希表循环内部删除成员会报错,怎么破?
如果这样实现不了,那就要全部推倒想其他办法了。






测试.zip (59.34 KB, 下载次数: 5)

评分

参与人数 1金钱 +1 收起 理由
伟业 + 1 用易语言的话来说,就是超出数组成员下标.

查看全部评分

非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

26

主题

1902

帖子

6932

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6932
沙发
发表于 2021-6-22 17:38:19 | 只看该作者
这肯定报错啊,枚举循环相当于计次循环,你删了部分成员,循环次数和成员数就对不上了,相当于数组越界

你可以在循环外部加个整数数组,在哈希表循环内部把符合条件的关键字加入到数组里

哈希表循环完之后,再去循环这个整数数组来删除哈希表的成员
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40543
板凳
发表于 2021-6-22 17:52:47 | 只看该作者
是的。。没毛病。。楼上说的对。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

17

主题

792

帖子

2744

积分

金牌会员

Rank: 6Rank: 6

积分
2744
地板
发表于 2021-6-22 18:00:09 | 只看该作者
用易语言的话来说,就是超出数组成员下标
回复

使用道具 举报

17

主题

792

帖子

2744

积分

金牌会员

Rank: 6Rank: 6

积分
2744
5#
发表于 2021-6-22 18:09:51 | 只看该作者


改进例子
回复

使用道具 举报

16

主题

89

帖子

1103

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1103
6#
发表于 2021-6-23 06:37:19 | 只看该作者
首先如果要删除成员 建议逆向遍历
另外建议火山里不要去用计次循环和枚举 特别是多线程下
最好是无论什么 都用循环
回复

使用道具 举报

32

主题

404

帖子

3537

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3537
7#
发表于 2021-6-23 07:53:52 | 只看该作者
aiyanok 发表于 2021-6-23 06:37
首先如果要删除成员 建议逆向遍历
另外建议火山里不要去用计次循环和枚举 特别是多线程下
最好是无论什么  ...

有什么不好的地方?
回复

使用道具 举报

50

主题

567

帖子

2477

积分

金牌会员

Rank: 6Rank: 6

积分
2477
8#
发表于 2021-6-23 10:09:37 | 只看该作者
回复

使用道具 举报

87

主题

952

帖子

4899

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4899
9#
发表于 2021-6-23 12:04:16 | 只看该作者
aiyanok 发表于 2021-6-23 06:37
首先如果要删除成员 建议逆向遍历
另外建议火山里不要去用计次循环和枚举 特别是多线程下
最好是无论什么  ...

哈希表...逆向循环删除也不行...
必须要先复制出所有主键,然后在删除..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-25 11:51 , Processed in 0.099366 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表