递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

91

主题

491

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

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

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






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

评分

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

查看全部评分

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

使用道具 举报

26

主题

1567

帖子

5859

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

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

使用道具 举报

439

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

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

使用道具 举报

17

主题

794

帖子

2639

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

17

主题

794

帖子

2639

积分

金牌会员

Rank: 6Rank: 6

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


改进例子
回复

使用道具 举报

16

主题

87

帖子

1087

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

32

主题

379

帖子

3262

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

有什么不好的地方?
回复

使用道具 举报

50

主题

509

帖子

2064

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

76

主题

841

帖子

4343

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-23 10:10 , Processed in 0.095445 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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