如何生成指定范围的 11 位序列号?
问题内容
我正在使用给定的代码在列表视图中生成序列号,最多可达 11 位数字的特定范围。最多十位数字,生成的序列如 0333624140 至 0333624160(例如 0333624140,0333624141,0333624142,0333624143 等),但如果我们将所需的值更改为 11 位数字,如 03336241441 至 03336241450然后应用程序崩溃。
btngenerate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int value1; int value2; value1 = Integer.parseInt(txtfirst.getText().toString()); value2 = Integer.parseInt(txtsecond.getText().toString()); for(int i=value1;i<=value2;i++){ list.add(""+i); li.setAdapter(arrayAdapter); } } });
登录后复制
解决方法
我自己并在大家的帮助下解决了我需要的解决方案。我将其展示在这里,以便其他人可以获得有关它的信息。不管怎样,我发自内心地感谢你们~
btngenerate.setOnClickListener(new View.OnClickListener() { @SuppressLint("DefaultLocale") @Override public void onClick(View view) { try { long value1; long value2; value1 = Long.parseLong(txtfirst.getText().toString()); value2 = Long.parseLong(txtsecond.getText().toString()); for(Long i = (Long) value1; i<=value2; i++) { list.add(String.format("%011d", i)); li.setAdapter(arrayAdapter); } } catch (NumberFormatException e) { e.printStackTrace(); } } });
登录后复制
对于如何编写此代码来说,这是一个完全破碎的想法。您正在创建一个数组,其中可以包含 11 位长的每个数字。那是 110 亿件物品。即使每个对象只占用 8 个字节(4 个用于值,4 个用于引用。实际情况会比这个多),这也是 880 亿字节,即大约 9.5 gb。那永远不会适合记忆,在那之前你就会 oom way。
有很多方法可以做到这一点。您的适配器不需要包含其中每个项目的数组,因为它是一个连续范围,它只需要开始和结束索引,并且可以根据开始索引和偏移量计算每个索引的值。但是拥有每个值的列表是行不通的。
以上是如何生成指定范围的 11 位序列号?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
刺客信条阴影:贝壳谜语解决方案
4 周前
By DDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
3 周前
By DDD
在哪里可以找到原子中的起重机控制钥匙卡
4 周前
By DDD
<🎜>:死铁路 - 如何完成所有挑战
1 个月前
By DDD
Atomfall指南:项目位置,任务指南和技巧
1 个月前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)