java - java中需要逻辑清理帮助

标签 java performance

我正在用java工作,遇到了我的同学写的一段奇怪的代码,我确信模数运算符可以工作,但由于某种原因,我没有得到我认为可以从运算符那里得到的预期结果。

现在代码编写如下:

long divisionID = myMaxId % 40;
                if (divisionID == 0) {
                    divisionID = 1;
                }
                long empiresubID = 1;
                if (myMaxId >= 1600) {
                    empiresubID = 2;
                }
                if (myMaxId >= (1600 * 2)) {
                    empiresubID = 3;
                }
                if (myMaxId >= (1600 * 3)) {
                    empiresubID = 4;
                }
                if (myMaxId >= (1600 * 4)) {
                    empiresubID = 5;
                }
                if (myMaxId >= (1600 * 5)) {
                    empiresubID = 6;
                }

其他一些地方的情况也是如此,并且会上升到 1600*40。

我认为对 myMaxId %1600 使用模运算符,但这给了我错误的结果。

最终目标是有 40 个分区,我们首先在用户注册时使用 myMaxID % 40 为所有分区填充子分区 1。

完成后,分割将翻转为 2,然后我们将所有分割填充为分割 2。

我认为当前的编程方式效率不高,应该有其他方法来做到这一点。

对此的任何想法或帮助都会很棒。

最佳答案

我认为你可以通过替换来摆脱 if

long empiresubID = (myMaxId / 1600) + 1;

关于java - java中需要逻辑清理帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227966/

相关文章:

java - 寻找有关如何在特定测试中提高常规性能的想法

python - 有效地找到由 numpy 数组的索引分割的子数组的 cumsum

java - Maven clover2触发重复类异常

Java Reflections获取特定子包的url

java:关闭客户端套接字重置服务器套接字

node.js - 使用 Node.js 测量时间

c# - 在 C# asp.net 中使用不安全代码

mysql每张表的数据量

java - (Android) 如何使用模式设置操作栏样式

java - 无法获取命令执行的值 "lsof"