我正在处理我的一项任务,我正在寻找一些帮助我的一个功能的逻辑.
首先,我有一个要分类的数字数组,然后是一个数字间隔,这个数字决定了每个被绘制的数字在哪个位置进入array2.
即.
int interval = 2;
for(int i = 0; i < array1.length; i++) {
if((array1[i] > 0) && (array1[i] < interval)) {
array2[0]++;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,array1中的数字是3.然后我需要另一个if语句,如下所示:
...
}else if((array1[i] > 2) && (array1[i] < interval * 2)) {
array2[1]++;
}else if((array1[i] >
Run Code Online (Sandbox Code Playgroud)
你可以开始看到这个问题,我需要继续无限范围的数字.所以我的问题是实现这一目标的更简单方法是什么?或者我已经可以利用这个库了吗?
如果我没有说清楚,我很抱歉,如果没有给我代码,我更愿意.如果有人能够告诉我一个更有效的方法来解决这个问题,我将不胜感激,提前感谢!
编辑:
假设间隔设置为2,并且array1中的数字介于0和10之间,我需要创建一个代码来执行此操作:
2 < numFromArray1 > 0 == array2[0]++
4 < numFromArray1 > 2 == array2[1]++
6 < numFromArray1 > 4 == array2[2]++
8 < numFromArray1 > 6 == array2[3]++
10 < numFromArray1 > 8 == array2[4]++
Run Code Online (Sandbox Code Playgroud)
但是,array1中的数字可以是正数或负数,整数或小数.
使用嵌套循环.显然,间隔的可能性不是很大,因为array2具有固定的大小.因此,如果你遍历array2中的所有单元格,然后做一些数学运算来弄清楚你的条件需要...我不会给出完整的代码(你问我不要,但它看起来像:
for ( ... ) {
for ( ... ) {
if (array1[i] > /* do some math here */ && ... ) {
array2[/* figure out what this should be too */]++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望你能从中找到答案.
顺便说一句,如果您不需要为array2使用数组,请考虑学习LinkedList<?>可以根据需要增加大小的数据结构.
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/LinkedList.html
http://www.dreamincode.net/forums/topic/143089-linked-list-tutorial/
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |